asp -страница маршрута не отображает URL в подпапках администратора - PullRequest
0 голосов
/ 05 апреля 2020

Я создал несколько страниц в asp. net core 3.1 Веб-приложение на странице Razor для образовательных целей, поскольку я новичок в asp. net core, у меня возникла странная проблема с одним из маршрутов: page 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>

Я также прилагаю скриншот с кодом и папкой enter image description here

Я могу зайти на страницу, если наберу URL страницы напрямую https://localhost:44364/Admin/News/

Startup.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();
            });
        }
    }
}
...