加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 19:21:24 所属栏目:asp.Net 来源:网络整理
导读:我试图更改由@ Html.HiddenFor创建的html输入的发出的名称。 我使用的代码: @Html.HiddenFor(e = e.SomeProperty,new { @id = "some_property",@name = "some_property" } 现在这适用于id,但它不工作的名称。现在我真的不关心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”,不在乎第二个…)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读