Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 虚荣MVC路线?_Asp.net Mvc_Routing - Fatal编程技术网

Asp.net mvc 虚荣MVC路线?

Asp.net mvc 虚荣MVC路线?,asp.net-mvc,routing,Asp.net Mvc,Routing,我希望有一个类似以下内容的路由:www.abc.com/companyName/Controller/Action/Id 但是,所有公司名称都需要映射到相同的“基本”控制器,以确定名称。我只需要companyName进行身份验证 另外,如果没有提供companyName,我需要映射到一组不同的控制器 我该怎么做?我也希望有一个好的路由资源,这样我就不用问这样的问题了 routes.MapRoute( "CompanyRoute",

我希望有一个类似以下内容的路由:www.abc.com/companyName/Controller/Action/Id 但是,所有公司名称都需要映射到相同的“基本”控制器,以确定名称。我只需要companyName进行身份验证

另外,如果没有提供companyName,我需要映射到一组不同的控制器

我该怎么做?我也希望有一个好的路由资源,这样我就不用问这样的问题了

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
);