Я создал 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 для элемента LI. Однако мне трудно найти маршрут, в котором находится пользователь. Это возможно? Код, который у меня есть до сих пор:
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);
}
BTW Я использую MVC 1.0.
Thanks