(new {htmlAtributes = new {})和(new {})之间有什么区别

时间:2019-05-01 02:32:08

标签: javascript asp.net-mvc razor

我知道它们是匿名类型,但我不了解Razor语法。在一些文档中,我找到了这样的示例:

@Html.Label("Hello", new { htmlAtributes = new { id = "hi" }})

在大多数情况下,我只使用以下简单方法:@Html.Label("Hello", new { id = "hi" })

帮助我理解这一点,而且我不知道为什么我的document.getElementById('hi').innerHTML = "changed";与第一个不兼容。

1 个答案:

答案 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" })