C# 导航操作在href链接中重复?
我有一个.Net 3.1核心web应用程序,使用以下标记作为导航: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"
<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>