[英]Using MVC5's RoutePrefix with areas
我目前有一個位於 /account/signin 的控制器。 如何使用 MVC5 的 RoutePrefix 使其在 /account/sign-in 處可尋址?
我試過裝飾我的控制器:
[RoutePrefix("account/sign-in")]
public class SignInController : Controller
{
public ActionResult Index()
{
return View();
}
}
並在RegisterRoutes
中映射我的路線:
routes.MapMvcAttributeRoutes();
但是這樣做時我得到了這個異常:
找不到路徑“/account/sign-in”的控制器或未實現 IController
我刪除了我的默認路由文件 ( AccountAreaRegistration.cs
),它現在可以工作了。 我沒有意識到你不能同時使用!
您還可以添加:
context.Routes.MapMvcAttributeRoutes();
到AccountAreaRegistration
類中的RegisterArea
方法,然后使用類似:
[RouteArea("admin")]
[RoutePrefix("menu")]
[Route("{action=index}/{id?}")]
在控制器的頂部,為您所在區域的一個或多個控制器使用屬性路由,其余的使用您設置的默認值; 例如,
public override void RegisterArea(AreaRegistrationContext context)
{
context.Routes.MapMvcAttributeRoutes();
context.MapRoute(
name: "Admin",
url: "Admin/{controller}/{action}/{id}",
defaults: new { area = "Admin", controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
那么你兩者都有。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.