在MVC中使用HtmlHelpers时,可以指定一组html属性作为字典对象。
我在网上阅读了很多关于创建HtmlHelpers的资料但是我已经专注于jQuery和其他ASP.NET的东西,我必须尽快开发一个应用程序,我没有时间来处理Html Helpers自定义
我知道MVC3已经提供了一些像@class这样的属性,但在微软网站上没有关于htmlattributes的信息。请您告诉我哪些属性可用,以及如何指定min C#?
我最感兴趣的是“禁用”,禁用特定控件和“id”,以更改控件的ID,因为HtmlHelpers默认使用相同的id和name值。我需要它与jQuery一起使用。
提前致谢
弗朗西斯
答案 0 :(得分:6)
这些是简单的HTML属性,因此您可以使用您正在使用的DOCTYPE中的任何可用属性。 ASP.NET MVC助手只需获取这些属性并在生成的HTML页面中发出它们。因此,如果您需要文档,请查看HTML specification。
关于包含破折号的HTML5 data-*
属性,只有一点点评论。因为破折号不能在.NET中用作变量名,所以可以使用下划线,它将被转换为破折号。例如:
@Html.TextBoxFor(x => x.Foo, new { data_id = "bar" })
将呈现为:
<input type="text" name="Foo" id="Foo" value="some value" data-id="bar" />
答案 1 :(得分:1)
Html Attributes基本上只提供了一组值,这些值将作为创建的相应元素的属性写入
语法通常为new { @class="#myClass", @id="mySpecificID", @customAttrName="myvalue" }
可能会产生类似
的内容<input type="text" name="MVCSuppliedName" value="" class="#myClass id="mySpecificID" customAttrName="myvalue" />
它们旨在提供一种在运行时向渲染标记添加属性的灵活方法。
答案 2 :(得分:0)
Html属性只是将在标记中呈现的键值对的集合。你可以使用你想要的任何东西。请考虑以下代码:
Html.ActionLink(
"My Link",
"MyAction",
"MyController",
new { }, // Route values
new { disabled = "disabled" } // Html Attributes
);
ActionLink
有很多重载,但是object
的{{1}}和routeValues
的另一个对象。
您可以在htmlAttributes集合中使用的内容受限于HTML标准所说的内容。但是在大多数浏览器中,如果您愿意,可以添加自己的属性。