加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – Html.DisplayFor不发布值到控制器在ASP.NET MVC

发布时间:2020-12-15 18:54:10 所属栏目:asp.Net 来源:网络整理
导读:我使用ASP.NET MVC 3与Razor,下面是从我的视图代码的示例。 除了“EmailAddress”字段,用户应能够编辑其所有详细信息。对于该字段只有我使用Html.DisplayFor(m = m.EmailAddress)。 但是当这个表单被发布时,所有的模型属性都被填充,除了EmailAddress。
我使用ASP.NET MVC 3与Razor,下面是从我的视图代码的示例。

除了“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>
}

请告诉我这个。

解决方法

您需要添加一个
@Html.HiddenFor(m => m.EmailAddress)

DisplayFor不会在POST中发送任何内容,它不会创建输入…

顺便说一句

@ Html.HiddenFor(m => m.Id)//或任何是模型键

将是有用的

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读