У меня есть это:
<ul class="side-nav">
<li class="side-nav-item active">
<a @Url.Action("Dashboard", "Home")>
<i class="dripicons-meter"></i>
<span> Dashboard </span>
</a>
</li>
<li class="side-nav-item">
<a @Url.Action("New", "Ticket")>
<i class="dripicons-plus"></i>
<span> @_Layout.NewTicket </span>
</a>
</li>
<li class="side-nav-item">
@***** submenu ******@
<a href="#nav-settings" class="nav-app side-nav-link" data-toggle="collapse" aria-expanded="false">
<i class="dripicons-view-apps"></i>
<span class="mf-rotate"> @_Layout.Settings </span>
<span class="menu-arrow"></span>
</a>
<ul id="nav-settings" class="side-nav-second-level collapse">
<li>
<a href="@Url.Action("Index", "UserAdministration")">@_Layout.ManageUsers</a>
</li>
<li>
<a href="@Url.Action("Index", "MailNotifications")">@_Layout.MailingListManager</a>
</li>
</ul>
</li>
</ul>
Я хочу динамически создать пункт меню, выбранный с активным классом, также для подменю. Какой лучший способ? через c # или js? с помощью c # я нашел это:
public static class MenuExtensions
{
public static MvcHtmlString MenuItem(this HtmlHelper htmlHelper, string text, string action, string controller)
{
var a = new TagBuilder("a");
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))
{
a.AddCssClass("active");
}
a.InnerHtml = htmlHelper.ActionLink(text, action, controller).ToHtmlString();
return MvcHtmlString.Create(a.ToString());
}
}
и для использования @Html.MenuItem("Home", "Index", "Home")
но как мне вставить теги <i class = "..."> </i> e <span>
? Спасибо