这是一个ASP.Net Web应用程序,是webforms和MVC v5.2.3的混合体。当我在嵌套类的属性上调用Html.EditorFor时,输入呈现时没有" id"属性。怎么会?我是否可以在模型中更改任何内容以强制asp.net呈现" id"属性?
我的模型," Parent",包含一个嵌套类," Child":
public class Parent
{
public string ParentName {get;set;}
public class _Child
{
public string ChildName {get;set;}
}
public Child _Child {get;set;}
}
在视图中,当我使用Html.EditorFor()渲染Parent.ParentName时,它会使用" Name"和" Id"属性。换句话说,当我把它放在* .cshtml文件中时:
@Html.EditorFor(m => m.ParentName)
它呈现以下HTML:
<input id="ParentName" name="ParentName" type="text" value="" />
然而,当我渲染Parent._Child.ChildName时,它渲染时没有&#34; Id&#34;属性。换句话说,当我把它放在* .cshtml文件中时:
@Html.EditorFor(m => m._Child.ChildName)
它呈现以下HTML,没有&#34; id&#34;属性:
<input name="_Child.ChildName" type="text" value="" />
为什么?我可以做任何我模型强制生成&#34; id&#34 ;?我意识到我可以使用新的HtmlAttributes等自己添加它。
答案 0 :(得分:1)
这使用HTML 4规范https://www.w3.org/TR/html401/types.html#case-sensitive,它说必须以字母开头,将下划线更改为字母,它应该没问题。
纯粹的意见,但我不会在这里使用下划线,因为它更难打字。