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

Using @local_variable in CSHTML code in asp-page

我开发 ASP.Net Core 2.1 RazorPages Web 应用程序。我想参数化 asp-page tag helper 的值。

所以我在 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 标签助手使用局部变量?

提前致谢。

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