我目前正致力于ASP.NET MVC2中的强类型更新视图。除了用户可以更新的属性之外,还有一些用户无法更新的属性,但我仍想在页面上显示(例如,创建日期)。
以下是我如何显示这些不可编辑字段的示例:
<td>Created on:</td>
<td><%= Html.DisplayTextFor(model => model.CreatedOn) %></td>
但是,当我提交表单然后在控制器方法上使用断点来查看通过POST请求传递给方法的模型对象时,不可编辑的字段将设置为空值或空值(例如,CreatedOn日期设置为1/1/0001)。可编辑字段将使用正确的值传回。当我将表单发回控制器时,如何在保留原始值的同时显示这些不可编辑的字段?
答案 0 :(得分:1)
您不需要原始值。如果使用UpdateModel(或TryUpdateModel),则可以设置应更新哪些属性。此解决方案也更安全,因为您明确告诉MVC应更新哪些属性。
答案 1 :(得分:0)
您需要使用隐藏字段,如下所示:
<%= Html.HiddenFor(model => model.CreatedOn) %>
这将是您的显示字段的补充。