asp.net - asp-page 路由未将 url 呈现到管理子文件夹
问题描述
我在 asp.net core 3.1 Razor 页面 Web 应用程序中创建了几个页面用于教育目的,因为我是 asp.net 核心的新手,我面临一个页面路由的奇怪问题,asp-page="/Admin/News"
所有其他路由都可以正常工作,但是当我添加另一个管理页面的链接asp-page="/Admin/News"
它不起作用它显示导航项目,但总是指向我所在的同一页面,例如,如果我在Employee
并且如果我点击 Admin Section it will go to
Employee`,就像我在这个页面上一样。
不知道为什么会这样,我改为asp-page="/Admin/News"
,asp-page="/Admin/News/"
即使asp-page="/Admin/News/Index"
这些路线也不起作用
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/BookList/Index">Book</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Employee">Employee</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/News">News</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Admin/News">Admin Section</a>
</li>
</ul>
如果我直接输入页面 url,我可以访问页面https://localhost:44364/Admin/News/
启动.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using BookListRazor.Data;
using BookListRazor.Model;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
namespace BookListRazor
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddRazorPages().AddRazorRuntimeCompilation();
services.AddDbContext<ApplicationDbContext>(option => option.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
var sqlConnectionConfiguration = new SqlConnectionConfiguration(Configuration.GetConnectionString("DefaultConnection"));
services.AddSingleton(sqlConnectionConfiguration);
//services.AddTransient<IEmployeeService, EmployeeDapperService>();
services.AddScoped<IEmployeeService, EmployeeDapperService>();
services.AddScoped<INewsService, NewsService>();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/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.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapRazorPages();
});
}
}
}
解决方案
在您的/Admin/News/Index.cshtml添加:
@page "/Admin/News/"
推荐阅读
- python - 绘图时升序 df 显示为降序
- javascript - 在共享文件夹中旁加载 Office 加载项,插入我的加载项中没有可用的加载项
- javascript - 我想在 Nuxt.js 中使用 Filter 缩小范围后进行排序
- elasticsearch - Elasticsearch 聚合和过滤器返回不同的大小
- slack - 有没有办法在 Slack 中安装一个仅对安装它的用户可用的应用程序。(个人范围内的应用安装)
- c# - 如何使用 SDK 创建 C# 程序?
- django - 带有 debug=false 的 Wagtail 空日志文件
- azure - Azure Monitor - 日志分析 - 性能计数器 - 本地进程
- typescript -