隐藏(‘ name’,‘ value’)创建一个隐藏标记,其中 name = ‘ name’和 value = ‘ value’。
Html.HiddenFor (x = > x.nameProp)创建一个名为 name = ‘ nameProp’和 value = x.nameProp 的隐藏标记。
从表面上看,它们似乎做着类似的事情,只是一个比另一个更方便。但是它的实际价值是用于模型绑定。当 MVC 试图将 Html 关联到模型时,它需要有属性的名称,以及 Html 的名称。在隐藏状态下,我们选择了“ name”,而不是“ nameProp”,因此绑定无法工作。您必须有一个自定义绑定对象,或者从表单数据中获取值。如果要重新显示页面,则必须再次将模型设置为值。