这是一个MVC - 剃刀问题。 [环境是MVC 4.0。]我有一个具有一个可编辑属性和一个仅显示属性的视图模型。在我看来,我正在使用@ html.TextBoxFor()方法来编辑可编辑属性。为了显示仅显示属性,我直接使用@ Model.Property。我在Editable属性上有一个服务器端验证,如果Editable属性的发布值无效,我将返回相同的视图,并在视图的验证摘要部分中显示验证错误。现在,问题是 - 在提交可编辑属性的无效值的视图表单后,我看到了editable属性的错误,但是仅显示属性为空。 MVC是否为我的仅显示属性发布BLANK / Nothing?我该如何解决这个问题?
答案 0 :(得分:2)
如果要排除视图模型属性,可以使用绑定属性和界面的组合,只需要在服务器上进行模型绑定时要包含的属性。
答案 1 :(得分:1)
如果您没有在表单字段(输入等等)上保留它,则在发布时它不会是免费的。
使用@Html.HiddenFor
方法保留表单中的属性(以及显示它),以便在发布时可用。
@model YourCustomerViewModel
@using(Html.BeginForm())
{
<span>@Model.EmailAddress</span>
@Html.TextBoxFor(s=>s.FirstName)
@Html.HiddenFor(s=>s.EmailAddress)
<input type="submit" value="Save" />
}