Что является эквивалентом ядра ASP.NET для @ Html.IsSelected - PullRequest
0 голосов
/ 07 сентября 2018

Мне нужно обновить страницу с ASP.NET MVC до ASP.NET Core, и я иногда сталкиваюсь с проблемой, что некоторые из старых методов больше не работают.

Существует ли эквивалентный код для упрощения процесса обновления.

Все, что я сейчас нашел, это @Html.Partial("name") равно <partial name="name.cshtml" />

У меня проблемы с @Html.IsSelected. Я не могу найти, как использовать это в ASP.NET Core

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 07 сентября 2018

Вы можете легко решить эту проблему с помощью одного метода расширения, например:

using Microsoft.AspNetCore.Mvc.Rendering;
using System;

namespace StackOverFlow.Extensions
{
    public static class MyExtensions
    {
        public static string IsSelected(this IHtmlHelper html, string controller = null, string action = null)
        {
            string cssClass = "active";
            string currentAction = (string)html.ViewContext.RouteData.Values["action"];
            string currentController = (string)html.ViewContext.RouteData.Values["controller"];

            if (String.IsNullOrEmpty(controller))
                controller = currentController;

            if (String.IsNullOrEmpty(action))
                action = currentAction;

            return controller == currentController && action == currentAction ?
                cssClass : String.Empty;
        }
    }
}

и чем в представлении просто воспользуйтесь:

@using StackOverFlow.Extensions;

...

<ul>
    <li class="@Html.IsSelected(action: "Index")">
        <a href="@Url.Action("Index", "Home")">Home</a>
    </li>
    <li class="@Html.IsSelected(action: "About")">
        <a href="@Url.Action("About", "Home")">About</a>
    </li>
</ul>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...