Построить пункты меню из контроллера - PullRequest
0 голосов
/ 12 февраля 2019

Я создаю HTML-меню из контроллера.Меню хранятся в базе данных, и я делаю HTML-тег, как показано ниже:

foreach (UIMenuModel item in list)
{
    if (item.Controller != "Home")
    {
        string line = string.Format(@"<li><a asp-area=""{0}"" asp-controller=""{1}"" id=""{1}""
            asp-action = ""{2}"" style = ""font-size:16px;;"" > {3} </a></li>", item.Area, item.Controller, item.Action, item.LinkText);
        sb.Append(line);
    }
}

, что дает мне ниже HTML:

<li><a asp-area="" asp-controller="CrossApproval" id="CrossApproval" asp-action="Index" style="font-size:16px;;"> Cross Approval </a></li>

Другой пункт меню, который написан в самом HTML, дает нижеHTML в браузере.

<li><a id="CrossRequest" style="font-size:16px" href="/CrossRequest">Cross Request</a></li>

На интерфейсе это выглядит идеально.Однако я не могу щелкнуть и перейти к нужному контроллеру и методам действий.Может кто-нибудь, пожалуйста, помогите мне определить, пока этот якорный тег не позволяет мне перемещаться.

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Как написано в Вопросе, HTML с href работал нормально.Итак, я решил имитировать то же поведение с контроллера и изменил свой код, как показано ниже:

string line = string.Format(@"<li><a asp-area=""{0}"" id=""{1}"" href=""/{1}/{2}""
                           style=""font-size:16px"">{3}</a></li>", item.Area, item.Controller, item.Action, item.LinkText);

Это сгенерировало ссылку, по которой я могу щелкнуть и перейти.

0 голосов
/ 12 февраля 2019

Используйте RazorLightEngine для преобразования простой строки в визуализированную строку Razor:

string content = "Hello @Model.Name. Welcome to @Model.Title repository";

var model = new
{
  Name = "John Doe",
  Title = "RazorLight"
};

var engine = new RazorLightEngine();
string result = engine.ParseString(content, model);

И затем добавьте ее в любое место в виде бритвы, как закодированная строка

<div>
     @Html.Raw(result)
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...