Html.Hidden和Html.HiddenFor之间有什么区别?
Html.Hidden和Html.HiddenFor之间有什么区别?
我在MSDN上找到了关于Html.HiddenFor的良好定义,但我在Html.Hidden上只找到了相关问题。
有人能给我一个好的定义和一个例子吗。
admin 更改状态以发布 2023年5月21日
大多数MVC帮助方法都有XXXFor变体。它们旨在与具体模型类一起使用。想法是允许助手根据您在lambda中指定的属性推导出适当的表单输入控件的“name”属性。这意味着您可以消除您必须使用来将模型属性与视图相关联的“魔术字符串”。例如:
Html.Hidden("Name", "Value")
将导致:
在控制器中,您可能有这样一个动作:
[HttpPost] public ActionResult MyAction(MyModel model) { }
和一个模型:
public class MyModel { public string Name { get; set; } }
我们上面使用的原始Html.Hidden
将与模型中的Name
属性相关联。但是,有些让人不满的是必须使用字符串(“Name”)来指定属性的值。如果您重命名模型上的Name
属性,您的代码将会出错,错误有点难以找出。另一方面,如果使用HiddenFor
,您就会受到保护:
Html.HiddenFor(x => x.Name, "Value");
现在,如果您重命名Name
属性,您将收到一个明确的运行时错误,指示找不到该属性。此外,您还可以获得静态分析的其他好处,例如在键入x.
之后获取成员的下拉列表。