htmlhelperのroutelink?
-
29-09-2019 - |
質問
カスタムhtmlhelperでroutelinkを作成するにはどうすればよいですか?部分的なビューで作成する方法は知っていますが、Routelinkを使用してカスタムHTMLHELPER拡張法で新しいリンクを構築したいと思います。これを達成する方法は?
更新:htmlhelper.generateroutelinkに気づきました。しかし、パラメーターとして何を入れる必要がありますか?
解決
これが例です。リンクを包みます div
あなたの結果のHTMLが次のようになるように、指定されたクラスでタグを付けてください:
<div class="foo"><a href="/home/index">Some text</a></div>
次の拡張法を記述できます。
public static class HtmlExtensions
{
public static MvcHtmlString CustomRouteLink(
this HtmlHelper htmlHelper,
string className,
string linkText,
object routeValues
)
{
var div = new TagBuilder("div");
div.MergeAttribute("class", className);
div.InnerHtml = htmlHelper.RouteLink(linkText, routeValues).ToHtmlString();
return MvcHtmlString.Create(div.ToString());
}
}
これは次のように使用できます。
<%= Html.CustomRouteLink("foo", "Some text",
new { action = "index", controller = "home" }) %>
そして、これにより、目的のマークアップが生成されます。他の の過負荷 RouteLink
必要に応じて使用できます。
他のヒント
urlhelperのインスタンスを取得したら、htmlhelperメソッドでやりたいことは何でもできるはずです
UrlHelper url = new UrlHelper(helper.ViewContext.RequestContext);
所属していません StackOverflow