在ASP页面的CSHTML代码中使用@local_variable

时间:2018-10-26 09:33:03

标签: razor-pages

我开发ASP.Net Core 2.1 RazorPages Web应用程序。我想参数化ASP页面标记帮助器的值。

所以我在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="">。如何在Razor Pages中将局部变量用于asp-page标签助手?

谢谢。

1 个答案:

答案 0 :(得分:0)

您必须将页面名称传递给asp-page属性。因此,您尝试执行的操作不受支持。如果@del_link呈现了相对URL,则可以将其传递给href属性。可能还有其他合适的解决方案,具体取决于您为什么觉得完全需要使用@del_link