【发布时间】:2018-06-13 03:27:39
【问题描述】:
使用属性路由(Route Attribute),我在两个不同的控制器中有两个同名的动作方法如下
public class HomeController : Controller
{
//URL: /accessMethod
[Route(“accessMethod”)]
public ActionResult Method1()
ViewBag.Message = "Welcome to ASP.NET MVC!";
return View();
}
}
public class AccountController : Controller
{
//URL: /accessMethod
[Route(“accessMethod”)]
public ActionResult Method2()
ViewBag.Message = "Welcome to ASP.NET MVC!";
return View();
}
}
在点击 url http://localhost:1234/accessmethod 时,出现以下错误
“/”应用程序中的服务器错误。
找到多个与 URL 匹配的控制器类型。这个可以 如果多个控制器上的属性路由与请求的匹配,则会发生 网址。
请求找到了以下匹配的控制器类型: mvc_Test.Controllers.Page1Controller mvc_Test.Controllers.Page2Controller
请求您,如何在不使用 RoutePrefix 属性的情况下解决此问题?取而代之的是 RoutePrefix,我们可以使用 Controller 名称对吗?那么Attribute Routing的主要用途是什么?
【问题讨论】:
-
你有一个路由冲突,因为两者都映射到相同的路径。路线必须是唯一可识别的。
-
这似乎是XY problem。您要达到的最终目标是什么?
-
考虑使用路由前缀
-
感谢您的回复。如何在不使用 RoutePrefix 属性的情况下解决此问题?取而代之的是RoutePrefix,我们可以使用Controller名称对吗?那么Attribute Routing的主要用途是什么?
标签: c# asp.net-mvc asp.net-mvc-routing attributerouting