我知道它们是匿名类型,但我不了解Razor语法。在一些文档中,我找到了这样的示例:
@Html.Label("Hello", new { htmlAtributes = new { id = "hi" }})
在大多数情况下,我只使用以下简单方法:@Html.Label("Hello", new { id = "hi" })
帮助我理解这一点,而且我不知道为什么我的document.getElementById('hi').innerHTML = "changed";
与第一个不兼容。
答案 0 :(得分:1)
用于Html.LabelFor
@Html.LabelFor(c=>c.Email, new { htmlAtributes = new { id = "hi" } })
如果您使用@Html.Label("Hello", new { htmlAtributes = new { id = "hi" }})
它将生成为(带有htmlatributes是标签标记的属性)
<label for="Hello" htmlatributes="{ id = hi }">Hello</label>
您需要使用第二种方式
@Html.Label("Hello", new { id = "hi" })