asp.net-mvc – ASP.NET MVC 4覆盖发出的html名称和id

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – ASP.NET MVC 4覆盖发出的html名称和id前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图更改由@ Html.HiddenFor创建的html输入的发出的名称

我使用的代码

@Html.HiddenFor(e => e.SomeProperty,new { @id = "some_property",@name = "some_property" }

现在这适用于id,但它不工作的名称。现在我真的不关心id现在,我需要改变名称,因为这是一个发布回到目标服务器。

在那儿

>我可以在我的模型中的SomeProperty应用的属性
>一种方法在Html.HiddenFor中重写name属性

或者我坚持做一个简单的< input ...>用手?

解决方法

您需要使用 Html.Hidden(或手写输出< input ...>),而不是Html.HiddenFor
@Html.Hidden("some_property",Model.SomeProperty,new { @id = "some_property" })

强类型辅助函数(例如名称以“For”结尾的函数,如HiddenFor)的目标是从提供的表达式中猜测输入名称。所以如果你想有一个“自定义”输入名称,你可以总是使用常规帮助像Html.Hidden,你可以显式地设置名称

接受的answer from unjuken错误的,因为它生成无效的HTML。

使用该解决方生成两个名称属性

<input  Name="some_property"  name="SomeProperty" id="some_property" type="hidden" value="test" />

所以你将有Name =“some_property”AND name =“SomeProperty”,它是INVALID HTML,因为一个输入只能有一个名称属性! (虽然大多数浏览器碰巧采取第一个名称=“some_property”,不在乎第二个…)

猜你在找的asp.Net相关文章