剃须刀页面 asp-page 不呈现正确的 html

Posted

技术标签:

【中文标题】剃须刀页面 asp-page 不呈现正确的 html【英文标题】:razor page asp-page does not render correct html 【发布时间】:2021-12-20 23:26:14 【问题描述】:

我关注this tutorial

索引页面位于目录:Pages/Contacts 它具有如下所示的锚标记

创建新的

此锚不呈现为 href。它被完全渲染为

 <a   asp-page="/Contacts/Create">Create New</a>

但是,如果我写 url 地址 Contacts/Create ,它会将我带到页面。此外,如果将标签写为普通的 html 标签,它也可以工作。

【问题讨论】:

【参考方案1】:

你需要确保你放了

<a class="navbar-brand" asp-area="" asp-page="/Contacts/Index">ContactManager</a>

进入Pages/Shared/_Layout.cshtml 文件。

这是一个演示:

页面结构:

_Layout.cshtml:

...
    <div class="container">
            <main role="main" class="pb-3">
                <a class="navbar-brand" asp-area="" asp-page="/Contacts/Index">ContactManager</a>
                @RenderBody()
            </main>
        </div>
...

联系人/Index.cshtml:

@page
@model RazorPageDemo.Pages.Contacts.IndexModel
@

<h1>Contacts/Index page</h1>

结果:

【讨论】:

_Layout 完全符合您的建议: 我切换到比 Razor 页面更了解的 mvc 视图

以上是关于剃须刀页面 asp-page 不呈现正确的 html的主要内容,如果未能解决你的问题,请参考以下文章

使用剃须刀页面调用服务器方法而无需重新加载页面

ASP.net core 3.1 中控制器和剃须刀页面之间的路由

数据属性无法从 foreach 中获取动态 ID

使用处理程序对剃须刀页面的 ajax 请求

如何从剃须刀页面获取 html 表单值?

在 iis 服务器上删除 URL 中的扩展名