如何将自定义参数传递给类似MVC html.routeurl中的函数
本文关键字:html MVC routeurl 函数 自定义 参数传递 | 更新日期: 2023-09-27 18:20:47
我已经为Html Helper库编写了一个小的扩展方法,如下所示:
public static MvcHtmlString Image(this HtmlHelper htmlHelper, string url, string alt)
{
var img = new TagBuilder("img");
img.MergeAttribute("src", url);
img.MergeAttribute("alt", alt);
return new MvcHtmlString(img.ToString(TagRenderMode.SelfClosing));
}
我想更改它,以便可以根据需要添加参数。类似于:
public static MvcHtmlString Image(this HtmlHelper htmlHelper, string url, object htmlParameters)
{
var img = new TagBuilder("img");
img.MergeAttribute("src", url);
//Now I would like to extract the properties (and their values) from the object
//and add them to img.
return new MvcHtmlString(img.ToString(TagRenderMode.SelfClosing));
}
我想使这个函数通用,并传递一个具有自定义属性的object
,并将这些属性应用于img
标记。就像我们将htmlParameters
传递给ActionLink
助手方法一样。
@Html.ActionLink("link text", "actionName","controllerName", new {@class = "class"})
这有什么诀窍?
您可以使用以下代码提取它们:
var attributes = (IDictionary<string, object>) HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes)
img.MergeAttributes<string, object>(attributes, replaceExisting:true);
希望这能有所帮助。