我想创建一个HtmlHelper来显示带有具体化框架图标的链接。
我写这段代码是因为我找不到类似的例子。我的代码可以工作,但至少看起来很糟糕。我想我应该使用UrlHelper和UrlAction,但我不知道该怎么做。
public static IHtmlContent IconActionLink(this IHtmlHelper helper,
string iconName,
object iconHtmlAttributes,
string linkText,
string actionName,
string controllerName,
object routeValues,
object linkHtmlAttributes)
{
var content = new HtmlContentBuilder();
var anchorStart = new TagBuilder("a");
string routeValuesToString = "?";
foreach(var r in new RouteValueDictionary(routeValues))
{
routeValuesToString += r.Key.ToString()+"="+r.Value.ToString()+"&";
}
routeValuesToString.Remove(routeValuesToString.Length-1);
anchorStart.MergeAttribute("href", "../"+controllerName+"/"+actionName+"/"
+ routeValuesToString);
anchorStart.MergeAttributes(new RouteValueDictionary(linkHtmlAttributes));
anchorStart.InnerHtml.Append(linkText);
anchorStart.TagRenderMode = TagRenderMode.StartTag;
var icon = MaterialIcon(helper, iconName, iconHtmlAttributes);
var anchorEnd = new TagBuilder("a") { TagRenderMode = TagRenderMode.EndTag };
content.AppendHtml(anchorStart);
content.AppendHtml(icon);
content.AppendHtml(anchorEnd);
return content;
}
我想知道如何正确地将 RouteValues、Action、Controller 插入到标记中。
幕布斯7119047
相关分类