自定义路线

时间:2017-08-16 17:35:35

标签: c# asp.net-mvc asp.net-mvc-5

我需要一些帮助。 我在VS 2015中使用MVC 5,我想在我的项目中配置一些路由。

首先,我有一条“默认”路线,就是:

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

此路线用于常见操作,例如: localhost/auth/login或** localhost / sell /`

但是,我有一个区域,名称是公司。而且,我想在网址中获取名称公司,例如:localhost/companyname/{controler}/...

所以,我做了类似的事情(在CompanyAreaRegistration.cs中):

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

但是,默认路由只是停止工作(抛出404错误)。并且,我在localhost之后输入的所有名称,它都在呼叫公司区域。

有人可以帮助我吗?

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

1 个答案:

答案 0 :(得分:1)

从路线模板中删除公司名称中的花括号:

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

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

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