[英]How to route URL based on controller name only in ASP.NET MVC
我想當URL僅包含一個控制器(無動作)時,它將自動針對輸入的控制器的Index動作。 但是,我仍然希望默認路由成為登錄頁面。
默認路由為:
routes.MapRoute(
name: "Primary",
url: "{controller}/{action}/{id}",
defaults: new {controller = "Account", action = "SignIn", id = UrlParameter.Optional}
);
第二條路線應該是什么樣? 因此,mydomain.com / Account應該轉到Controller = Account,Action = Index,同時保持domain / controller / action / params的正常結構不變。
謝謝!
routes.MapRoute(
name: "Default",
url: "ApplicantProfile/{action}/{id}",
defaults: new { controller = "ApplicantProfile", action = "Start", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { action = "Index", id = UrlParameter.Optional }
);
假設您有ApplicantProfileController,HomeController和OtherController,這將導致:
/ApplicantProfile → ApplicantProfileController.Start
/Other → OtherController.Index
/SomeOtherPath → default 404 error page
/ → default 404 error page
有關路由的介紹,請參見http://www.asp.net/mvc/tutorials/older-versions/controllers-and-routing/asp-net-mvc-routing-overview-cs 。 它有點舊,但是涵蓋了基礎知識。
路由自上而下進行,這意味着它在路由表中的第一個匹配項處停止。 在第一種情況下,您將首先匹配您的ApplicantProfile路由,以便使用控制器。 第二種情況從路徑中獲取Other,找到匹配的控制器並使用它。 最后2個未找到匹配的控制器,並且未指定默認值,因此返回默認404錯誤。 我建議放置一個適當的錯誤處理程序。 在此處和此處查看答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.