问题描述
我有一个MVC应用,正在尝试向其中添加一些Razor页面。我已将以下页面添加到项目根目录:
pages/account/index.cshtml
<a class="nav-link text-dark" asp-page="/Account" title="Manage">Hello @User.Identity.Name!</a>
这将导致以下网址: / Asset / List?page =%2FAccount%2FAccount
相对于当前页面的网址。
但是我无法在浏览器中浏览到 / account / index 或 / account ,这表明路由存在问题。
我的MVC控制器路由运行正常,在标识区域的项目模板中创建的默认Razor页面也是如此,例如:
identity/pages/account/manage/index
public void Configure(IApplicationBuilder app,IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios,see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
});
}
和ConfigureServices:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews().AddRazorRuntimeCompilation();
services.AddRazorPages();
}
解决方法
我有一个MVC应用,正在尝试向其中添加一些Razor页面。我有 将以下页面添加到项目根目录:
pages / account / index.cshtml
这将导致生成/account/
的路由。传递给asp-page
属性的值是相对文件路径(植根于Pages文件夹),不带扩展名:
<a asp-page="/account/index">Account Home </a>
有关此处的Razor页中路由的更多信息:https://www.learnrazorpages.com/razor-pages/routing