【发布时间】:2023-04-08 04:10:02
【问题描述】:
背景
这是initial question 的后续问题,我询问了 asp.net core v3.1 razor 页面路由。
我按照解决方案here 中的建议将以下内容添加到启动中,这使我能够以我想要的两种方式路由到剃须刀页面:
services.AddMvc()
.AddRazorPagesOptions(options =>
options.Conventions.AddAreaPageRoute("Identity", "/account/signupandapply", "/identity/account/signup")
);
/identity/account/signup
/identity/account/signupandapply/<fooapplyid>
问题
我正在努力使用锚标记助手来尊重路径路由/identity/account/signupandapply/<fooapplyid>。 href 显示使用参数而不是 /identity/account/signupandapply?fooapplyid=<fooapplyid>。这是我的锚标记助手标记:
<a asp-area="identity" asp-page="/account/signupandapply" asp-route-fooapplyid="@Model.FooApplyId">Apply here</a>
目前,我正在手动设置 href,但想知道如何使用 tag helper 使其工作。
<a href="/identity/account/signupandapply/@Model.FooApplyId">Apply here</a>
注意:锚标记被添加到身份区域之外的视图中。
已尝试
我已尝试添加以下内容,以显示我想要的 href。即/identity/account/signupandapply/<fooapplyid>
.AddAreaPageRoute("Identity", "/account/signupandapply", "/identity/account/signupandapply/{applyid}")
但是当我转到页面时出现错误,这是有道理的
AmbiguousMatchException: The request matched multiple endpoints. Matches: /Account/SignUpAndApply /Account/SignUpAndApply
这些都不起作用,href 仍然显示为 ?applyid=:
.AddAreaPageRoute("Identity", "/account/signupandapply?applyid=", "/identity/account/signupandapply/{applyid}")
.AddAreaPageRoute("Identity", "/account/signupandapply/{applyid?}", "/identity/account/signupandapply/{applyid}")
问题
是否还有需要定义的进一步启动路径,或者我如何让锚标记助手尊重路径路径?
【问题讨论】:
标签: c# asp.net-core razor .net-core asp.net-core-mvc