我在 MVC 6 Web 应用程序中遇到路由问题:当我在默认使用的 Controller 中设置路由参数时,应用程序发送 404 错误。
我的路由配置:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Dashboard}/{action=Index}/{id?}");
});
我的仪表板 Controller (应用程序工作):
[Authorize]
public class DashboardController : Controller
{
public DashboardController()
{ }
[HttpGet]
public IActionResult Index() => View(new IndexViewModel());
}
相同的仪表板 Controller (应用程序响应 404 错误):
[Authorize]
[Route("[controller]")]
public class DashboardController : Controller
{
public DashboardController()
{ }
[HttpGet]
[Route("[action]")]
public IActionResult Index() => View(new IndexViewModel());
}
最佳答案
发生这种情况的原因是通过routes.MapRoute
指定的路由仅适用于不使用基于属性的路由的 Controller 。由于您的第二个示例使用基于属性的路由,因此只能通过属性中指定的路由到达 Controller 。因此只能在/Dashboard/Index 处访问
关于asp.net-mvc-routing - ASP.NET MVC 6 中默认 url 的路由错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36938106/