2
これはいくつかの異なる方法で行われていますが、特に私が探しているものではありません。現在、ナビゲーションシステムで現在のページを強調表示するためにActionLinkに「class = 'currentPage'」を追加するカスタムHtmlHelperがあります。カスタムHtmlHelper(アクションリンク内の画像)
public static MvcHtmlString MenuItem(
this HtmlHelper htmlHelper,
string text,
string action,
string controller
)
{
string value;
var routeData = htmlHelper.ViewContext.RouteData;
var currentAction = routeData.GetRequiredString("action");
var currentController = routeData.GetRequiredString("controller");
if (string.Equals(currentAction, action, StringComparison.OrdinalIgnoreCase) &&
string.Equals(currentController, controller, StringComparison.OrdinalIgnoreCase))
{
value = htmlHelper.ActionLink(text, action, new { controller = controller }, new { @class = "currentPage" }).ToHtmlString();
return MvcHtmlString.Create(value.ToString());
}
value = htmlHelper.ActionLink(text, action, controller).ToHtmlString();
return MvcHtmlString.Create(value.ToString());
}
これは素晴らしく機能しますが、私は各メニュー項目に関連付けられた画像も持っている管理領域を持っています。画像は、そのように、リンク内に配置されている:
<li><a href="/Admin/Blog"><img src="/Content/images/icons/page_edit.png" alt="" /> Blog</a></li>
私はActionLinkの内部の画像を追加します「のMenuItem」のオーバーライドメソッドを作成したいが、私は少し困惑しています。現在、私は外部にimgタグを置く次のものがあります...
public static MvcHtmlString MenuItem(
this HtmlHelper htmlHelper,
bool isAdmin,
string text,
string action,
string controller
)
{
string value;
var routeData = htmlHelper.ViewContext.RouteData;
var currentAction = routeData.GetRequiredString("action");
var currentController = routeData.GetRequiredString("controller");
value = "<img src='/Content/images/admin_icons/" + text + ".png' alt='' /> ";
if (string.Equals(currentAction, action, StringComparison.OrdinalIgnoreCase) &&
string.Equals(currentController, controller, StringComparison.OrdinalIgnoreCase))
{
value += htmlHelper.ActionLink(text, action, new { controller = controller }, new { @class = "currentPage" }).ToHtmlString();
}
else
{
value += htmlHelper.ActionLink(text, action, controller).ToHtmlString();
}
return MvcHtmlString.Create(value.ToString());
}
アイデアはありますか?
VARのhtml = String.Formatの( "
数字が分かっていなかった。素晴らしい作品です、ありがとう! –
おっと、私もそれを修正しました – Iain