Html.DisplayFor不张贴值ASP.NET MVC 3到控制器(Html.DisplayF

2019-06-27 23:05发布

我使用ASP.NET MVC 3剃须刀,下面是从我的视图代码的样本。

用户应该能够编辑自己的所有细节,除“EmailAddress的”场。 该字段仅我已经使用Html.DisplayFor(m => m.EmailAddress)

但是,当这种形式被发布,所有的模型属性都充满除了EmailAddress

如何发布时,我得到的电子邮件回到模式? 如果我用比其他一些辅助DisplayFor

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true, "Account update was unsuccessful. Please correct any errors and try again.")
    <div>
        <fieldset>
            <legend>Update Account Information</legend>
            <div class="editor-label">
                @Html.LabelFor(m => m.EmailAddress)
            </div>
            <div class="editor-field">
                @Html.DisplayFor(m => m.EmailAddress)
                @*@Html.ValidationMessageFor(m => m.EmailAddress)*@
            </div>           
            <div class="editor-label">
                @Html.LabelFor(m => m.FirstName)
            </div>
            <div class="editor-field">
                @Html.TextBoxFor(m => m.FirstName)
                @Html.ValidationMessageFor(m => m.FirstName)
            </div>
            <div class="editor-label">
                @Html.LabelFor(m => m.LastName)
            </div>
            <div class="editor-field">
            @Html.TextBoxFor(m => m.LastName)
                @Html.ValidationMessageFor(m => m.LastName)
            </div>
            <p>
                <input type="submit" value="Update" />                
            </p>
        </fieldset>
    </div>
}

请告诉我这一点。

Answer 1:

你需要添加一个

@Html.HiddenFor(m => m.EmailAddress)

DisplayFor不会在POST发送任何东西,也不会产生输入...

顺便说一句,一个

@Html.HiddenFor(m => m.Id) // or anything which is the model key

将是有用的



文章来源: Html.DisplayFor not posting values to controller in ASP.NET MVC 3