2017-08-16 66 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 
{ 
    ... 
}