Asp.net mvc 虚荣MVC路线?
我希望有一个类似以下内容的路由:www.abc.com/companyName/Controller/Action/Id 但是,所有公司名称都需要映射到相同的“基本”控制器,以确定名称。我只需要companyName进行身份验证 另外,如果没有提供companyName,我需要映射到一组不同的控制器 我该怎么做?我也希望有一个好的路由资源,这样我就不用问这样的问题了Asp.net mvc 虚荣MVC路线?,asp.net-mvc,routing,Asp.net Mvc,Routing,我希望有一个类似以下内容的路由:www.abc.com/companyName/Controller/Action/Id 但是,所有公司名称都需要映射到相同的“基本”控制器,以确定名称。我只需要companyName进行身份验证 另外,如果没有提供companyName,我需要映射到一组不同的控制器 我该怎么做?我也希望有一个好的路由资源,这样我就不用问这样的问题了 routes.MapRoute( "CompanyRoute",
routes.MapRoute(
"CompanyRoute",
"{companyName}/{controller}/{action}/{id}",
new { controller = "MyBaseCompanyController", action = "Index", id = "" }
);
routes.MapRoute(
"NoCompanyRoute",
"{controller}/{action}/{id}",
new {controller = "DifferentDefaultController", action = "Index", id = "" });
路由是一个相当复杂的话题,但在本文中有详细介绍。对于在线资源,我建议,然后回到堆栈溢出;) 转到Global.asax.cs,并在registerOutes()方法中的“默认”路由之前添加以下路由:
如果您希望解决由于路由而导致的错误,请参阅。我建议使用以下工具,我发现它非常有用
我也是这么想的。但是,每当我尝试这样做时,就会出现“未找到资源”错误。我不知道为什么它不符合我的路线。有什么想法吗?尝试为companyName添加一个默认值:new{companyName=“”,controller=“MyBaseCompanyController”…}Hmm。。。我可能需要查看路由映射代码和控制器类。您确定您的默认操作方法与默认控制器类匹配吗?@Womp:没关系。问题一直在我的路线的其他地方。很高兴得到你对我所做事情的确认。。。这样我就可以在别处找到问题。谢谢
routes.MapRoute(
"Vanity", // Route name
"{company}/{controller}/{action}/{id}", // URL with parameters
new { company = "", controller = "Home", action = "Index", id = "" } // Parameter defaults
);