C# 导航操作在href链接中重复?

C# 导航操作在href链接中重复?,c#,.net,asp.net-mvc,asp.net-core,C#,.net,Asp.net Mvc,Asp.net Core,我有一个.Net 3.1核心web应用程序,使用以下标记作为导航: <ul class="navbar-nav flex-grow-1"> <li class="nav-item"> <a class="nav-link text-white"

我有一个.Net 3.1核心web应用程序,使用以下标记作为导航:

                        <ul class="navbar-nav flex-grow-1">
                            <li class="nav-item">
                                <a class="nav-link text-white" asp-area="" asp-controller="Home" asp-action="Index">Home</a>
                            </li>
                            <li class="nav-item">
                                <a class="nav-link text-white" asp-area="" asp-controller="About" asp-action="About">About</a>
                            </li>
                            <li class="nav-item">
                                <a class="nav-link text-white" asp-area="" asp-controller="Students" asp-action="Students">Students</a>
                            </li>
                            <li class="nav-item">
                                <a class="nav-link text-white" asp-area="" asp-controller="Courses" asp-action="Courses">Courses</a>
                            </li>
                            <li class="nav-item">
                                <a class="nav-link text-white" asp-area="" asp-controller="Instructors" asp-action="Instructors">Instructors</a>
                            </li>
                            <li class="nav-item">
                                <a class="nav-link text-white" asp-area="" asp-controller="Departments" asp-action="Departments">Departments</a>
                            </li>
    
                        </ul>

而不是


                        <li class="nav-item">
                            <a class="nav-link text-white" href="/About">About</a>
                        </li>
                        

  • 我的控制器文件中是否有需要更改的操作参数? 包含路由的文件在哪里

    谢谢


    Robert

    默认情况下,路由在Startup.cs中定义,如您所见,有一个名为“Index”的默认操作。如果您将操作“About”重命名为“Index”,则链接将为“/About”


    您还可以使用
    路由
    属性来修饰操作,以定义自定义路由。

    正如@gidanmx2所指出的,默认情况下,路由类似于
    控制器/操作

    在您的视图中,您已将控制器和操作设置为相同

    <a class="nav-link text-white" asp-area="" asp-controller="About" asp-action="About">About</a>
    
    关于
    
    这就是为什么你有“关于/关于”链接


    我想您还没有为每个操作创建一个控制器,所以将正确的控制器设置为
    asp-controller
    ,这样就可以了。可能是
    Home

    您已经将
    asp控制器
    asp操作
    设置为相同的。我猜你所有的动作都在
    HomeController
    中,那么所有
    asp-controller
    都应该在家里。谢谢Gidan,你就在那里!
    app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
            });
    
    <a class="nav-link text-white" asp-area="" asp-controller="About" asp-action="About">About</a>