如果用戶在當前頁面上,我已經創建了一個html助手,它將一個css類屬性添加到li項目中。助手看起來是這樣的:HtmlHelper獲取路由名稱
public static string MenuItem(this HtmlHelper helper, string linkText,
string actionName, string controllerName, object routeValues, object htmlAttributes)
{
string currentControllerName =
(string)helper.ViewContext.RouteData.Values["controller"];
string currentActionName =
(string)helper.ViewContext.RouteData.Values["action"];
var builder = new TagBuilder("li");
// Add selected class
if (currentControllerName.Equals(controllerName, StringComparison.CurrentCultureIgnoreCase) &&
currentActionName.Equals(actionName, StringComparison.CurrentCultureIgnoreCase))
builder.AddCssClass("active");
// Add link
builder.InnerHtml = helper.ActionLink(linkText, actionName, controllerName, routeValues, htmlAttributes);
// Render Tag Builder
return builder.ToString(TagRenderMode.Normal);
}
我想擴大這個類,所以我可以傳遞路線名助手,如果用戶是路線上,然後它添加CSS類鋰項目。但是我很難找到用戶所在的路線。這可能嗎?我到目前爲止的代碼是:
public static string MenuItem(this HtmlHelper helper, string linkText, string routeName, object routeValues, object htmlAttributes)
{
string currentControllerName =
(string)helper.ViewContext.RouteData.Values["controller"];
string currentActionName =
(string)helper.ViewContext.RouteData.Values["action"];
var builder = new TagBuilder("li");
// Add selected class
// Some code for here
// if (routeName == currentRoute) AddCssClass;
// Add link
builder.InnerHtml = helper.RouteLink(linkText, routeName, routeValues, htmlAttributes);
// Render Tag Builder
return builder.ToString(TagRenderMode.Normal);
}
順便說一句我正在使用MVC 1.0。
謝謝