我正在尝试对大多数标准HtmlHelpers使用复制语法,其中使用object
将Html属性添加到生成的标记中。
我想要类似的东西:
<%: Html.MyCustomHelper("SomeValue", new { id="myID", @class="myClass" })%>
如何访问该新对象的键,以便可以从视图中添加属性?
这会使用反射吗?我听说过这个词有点混乱,但我并不熟悉。
最佳答案
内置的帮助器方法使用RouteValueDictionary
将object
转换为字典。它们还提供了两个用于接受HTML属性的重载,一个重载了object
,另一个重载了IDictionary<string, object>
:
public static string MyCustomHelper(this HtmlHelper htmlHelper, string someValue, object htmlAttributes)
{
return htmlHelper.MyCustomHelper(someValue, new RouteValueDictionary(htmlAttributes));
}
public static string MyCustomHelper(this HtmlHelper htmlHelper, string someValue, IDictionary<string, object> htmlAttributes)
{
// Get attributes with htmlAttributes["name"]
...
}
关于c# - 如何在自定义HtmlHelper中使用C#对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4686564/