mvc html.hidden(),c# – Html.Hidden和Html.HiddenFor之间有什么区别

大多数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”)指定。如果你重命名Model上的Name属性,你的代码将会中断,错误会有些难以弄清楚。另一方面,如果你使用HiddenFor,你得到的保护:

Html.HiddenFor(x => x.Name, "Value");

现在,如果重命名Name属性,您将获得一个显式运行时错误,指示找不到该属性。此外,您还可以获得静态分析的其他好处,例如在键入x后获得成员的下拉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值