Использование @local_variable в CSHTML-коде на asp-странице - PullRequest
0 голосов
/ 26 октября 2018

Я разрабатываю веб-приложение ASP.Net Core 2.1 RazorPages.Я хочу параметризировать значение помощника тега asp-page.

Поэтому я использую следующий код в файле cshtml.В начале файла определена локальная переменная del_link.Позднее эта переменная используется в качестве параметра для второго asp-page помощника по тегам.

@page
@{
    string del_link = "/UnloadDelete";
}

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
</head>
<body>
    <div>
        <a asp-page="/UnloadEdit">Details</a>
        <a asp-page=@del_link>Delete</a>
    </div>
</body>
</html>

ASP.Net Razor генерирует следующий HTML-код.

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
</head>
<body>
    <div>
        <a href="/UnloadEdit">Details</a>
        <a href="">Delete</a>
   </div>
</body>
</html>

Как видно из кода HTML,asp-page="/UnloadEdit" правильно отображается в HTML-коде, но asp-page=@del нет, он отображается в <a href="">.Как я могу использовать локальную переменную для помощника тега asp-page в Razor Pages?

Заранее спасибо.

1 Ответ

0 голосов
/ 26 октября 2018

Вы должны передать имя страницы атрибуту asp-page. То, что вы пытаетесь сделать, не поддерживается. Если @del_link отображает относительный URL, вы можете передать его атрибуту href. Могут быть и другие подходящие решения, в зависимости от того, почему вы чувствуете необходимость использовать @del_link вообще.

...