【问题标题】:How to Support htmlAttributes Parameters in HtmlHelper Extensions?如何在 HtmlHelper 扩展中支持 htmlAttributes 参数?
【发布时间】:2012-03-12 14:48:34
【问题描述】:

我正在创建 HtmlHelper 扩展方法。许多内置框架方法支持渲染到生成的 HTML 上的参数,如 htmlAttributes(对象类型)。如何提供我自己的方法的重载,这些方法也支持 htmlAttributes 参数,而无需重写字符串连接逻辑以将它们呈现为标签上的属性?

【问题讨论】:

  • 到目前为止你有什么?

标签: asp.net-mvc


【解决方案1】:

HtmlHelper 对象具有将对象转换为名称/值字典的方法,然后您可以在构建标签时将其合并到标签中。例如,此代码将生成一个 <script> 标记,其中包含传入的任何额外属性:

var attributes = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes) as IDictionary<string, object>;

TagBuilder tag = new TagBuilder("script");
tag.MergeAttributes(attributes);
tag.MergeAttribute("type", "text/javascript");
tag.MergeAttribute("src", scriptPath);

您可以提供重载或使用默认值来为htmlAttributes 提供null 值,这将产生一个空的Dictionary

(该方法还将属性名称清理为有效的 HTML 属性等,因此几乎可以安全地用于任何对象。)

【讨论】:

  • 哇,正是我需要的。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多