2017-08-16 67 views
0

我需要一些帮助。 我正在使用MVC 5,在VS 2015中,我想在我的项目中配置一些路线。定制路线的MVC替代路线

首先,我有一个 “默认” 的路线,那就是它:

routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new {controller = "Home", action = "Index", id = UrlParameter.Optional }, 
      namespaces: new[] { "Tipoou.Controllers" } 
     ); 

这条路线用于常用操作,如: localhost/auth/login或**本地主机/销售/`

但是,我有一个Area,那个名字是Company。而且,我想要得到的名称公司的网址,例如:localhost/companyname/{controler}/...

所以,我做了这样的事情(在CompanyAreaRegistration.cs):

context.MapRoute(
    "Company_default", 
    "{company}/{controller}/{action}/{id}", 
    new { controller = "home", action = "Index", id = UrlParameter.Optional } 
); 

但是,默认路由刚刚停止工作(抛出404错误)。而且,我把所有的名字放在localhost之后,这就是所谓的公司区域。

有人可以帮助我吗?

我可以这样做:尝试公司路线,如果失败,请尝试默认?

+0

你有多个公司名称,或仅文本“公司”?尝试删除“公司”周围的花括号,即“公司/ {控制器}/{动作}/{编号}”, – yalpertem

回答

0

从公司名称中路由模板移除大括号:

context.MapRoute("company_default", 
       "company/{controller}/{action}/{id}", 
       new { action = "Index", id = UrlParameter.Optional } 
      ); 

而且您的控制器类需要以下RouteAreaAttribute:

[RouteArea("company", AreaPrefix = "company")] 
public class MyTestController : Controller 
{ 
    ... 
}