asp.net-mvc - "HTML attributes"参数是什么?

标签 asp.net-mvc razor razor-declarative-helpers

以下示例:

@Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" })

似乎正在使用 LabelFor 的第二个重载方法,其中第二个参数,htmlAttributes , 记录为

An object that contains the Html attributes for the element



术语“HTML 属性”是什么意思,可以用于该对象的语法是什么?

最佳答案

HTML 元素可以有属性。例如:

<div class="some-css-class" data-foo="bar" />

这里div的属性是 classdata-foo .

Razor 的各种 HTML 辅助函数接受 htmlAttributes参数将提供的对象转换为属性。

您可以使用匿名类型来利用它,其中将其属性转换为属性名称,并将它们的值转换为相应属性的值。

例如:
new
{
    @class = "some-css-class",
    data_foo = "bar"
}

这将转换为上面显示的属性。

属性名称中的下划线被转换为破折号( How to specify data attributes in razor, e.g., data-externalid="23151" on @this.Html.CheckBoxFor(...) ),而 @之前 @class是必需的,因为 class是一个保留关键字,如果不使用 @ 转义就不能使用。 ( How can I add a class attribute to an HTML element generated by MVC's HTML Helpers? )。

还有一个 overload accepting IDictionary<string, object> htmlAttributes ,所以你也可以传递一个字典:
new Dictionary<string, object>
{
    { "class", "some-css-class" },
    { "data-foo", "bar" }
}

关于asp.net-mvc - "HTML attributes"参数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37589076/

相关文章:

c# - 如果字符串大于 255 个字符,则删除字符

c# - ASP.Net Web API Xml 序列化问题

c# - 更新数据库中网页的查看次数

asp.net-mvc - Razor 输入元素自定义属性

string - 我可以在Razor中使用@helper语法返回字符串吗?

asp.net - 如何将 HTML 片段(作为委托(delegate)?)传递给声明性 Razor Helper?

c# - CaSTLe Windsor Inversion of Control (IoC) : using the Web. 配置解决依赖关系

asp.net-mvc - ASP.NET MVC 3 列表<T> 到 IEnumerable<SelectListItem>

razor - 即使我刷新页面或者关闭选项卡并再次登录,我的 Blazor 服务器应用程序中的静态变量也会保留其值。为什么?

c# - ASP.NET MVC 3 中具有 Javascript 操作的 HTML 帮助器