基本上我在谈论我们在ASP.NET中所拥有的东西,称为ViewState。 这是一个例子,为了简单起见,我有一个模型Employee:
public class Employee
{
public string EmployeeId { get; set; }
public string Name { get; set; }
public string Company { get; set; }
public string Phone { get; set; }
public string Address { get; set; }
}
我公司通过EmployeeId,Name和Company为员工创建了记录。 员工只需要输入(更新)他的电话号码和地址。 当我在编辑/或创建模式下呈现表单以供员工输入此信息时,EmployeeID,Name和Company输出为文本,而Phone和Address是可编辑字段(Html.EditorFor),它允许保留在模型中输入的值对象
当此表单被HTTP回发时,假设验证失败,表单再次呈现给用户以更正其输入(查看(模型))。
然而,EmployeeID,Name和Company的值将丢失,因为它们未被定义为Html.EditorFor,如电话和地址,因此当提交的模型再次传递到View时,它们不会被保留。
如何在模型中保留(持久化)那些属性(不可编辑)?
谢谢。
答案 0 :(得分:1)
只需使用Html.HiddenFor并将值存储在页面上。你也可以使用mvc期货项目和Html.Serialize它,但是当你没有必要时你就模仿了viewstate。