2

だから私は次のコントローラーを持っています:

    [HttpPost]
    public ActionResult CreateSupport(CreateSupport model)
    {
        if (ModelState.IsValid && (model.Description != null))
        {
            model.CreatedById = UserId;
            model.ModifiedById = UserId;
        }

        return View(model);
    }

私は次の見解を持っています:

@using (Html.BeginForm("CreateSupport", "Support", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true)

    <fieldset>
        <legend></legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.Subject, new Dictionary<string, object>() { { "class", "req" } })
        </div>
        <div class="editor-field">
            @Html.TextBoxFor(m => m.Subject)
            @Html.ValidationMessageFor(model => model.Subject)
        </div>

        <div class="support-form-left">

            <div class="editor-label">
                @Html.LabelFor(model => model.BrowserInfo, new Dictionary<string, object>() { { "class", "req" } })
            </div>
            <div class="editor-field">
                @Html.TextBoxFor(m => m.BrowserInfo)
                @Html.ValidationMessageFor(model => model.BrowserInfo)
            </div>
        </div>

        <div class="support-form-right">

            <div class="editor-label">
                @Html.LabelFor(model => model.DatabaseVersion, new Dictionary<string, object>() { { "class", "req" } })
            </div>
            <div class="editor-field">
                @Html.TextBoxFor(m => m.DatabaseVersion)
                @Html.ValidationMessageFor(model => model.DatabaseVersion)
            </div>

        </div>

        <div class="clearFloat"></div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Description, new Dictionary<string, object>() { { "class", "req" } })
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Description)
            @Html.ValidationMessageFor(model => model.Description)
        </div>

        <div class="actionButtons">
            <button id="btnCancel" class="myButtonCancel">Cancel</button>
            <input type="submit" value="Submit" class="myButton" />
        </div>
        @if (ViewBag.SuccessMessage != null)
        {
            <div>
                <label style="color: red;">@ViewBag.SuccessMessage</label>
            </div>
        }
    </fieldset>

}

モデルは次のとおりです。

public class CreateSupport : SupportTicket
{
    public CreateSupport()
    {
        ProductList = new List<Product>();
        ProductVersionsList = new List<ProductVersion>();
        EnviromentList = new List<InstallationEnvironment>();
        content = new Content();
    }

    [Required]
    [UIHint("tinymce_jquery_full"), AllowHtml]
    public string Description { get; set; }

    [Required]
    [DisplayName("Browser version Info.")]
    public string BrowserInfo { get; set; }

    [Required]
    [DisplayName("Database Version")]
    public string DatabaseVersion { get; set; }

    public Content content { get; set; }

}

問題は、コントローラーに何らかの値を入力しても、コントローラーに到達する値が NULL であることです。

4

2 に答える 2

0

入力フィールド用

@Html.EditorFor(x => x.Subject)

表示フィールド用

@Html.DisplayFor(x => x.Subject)
于 2013-11-07T18:13:17.800 に答える