我需要一些帮助。 我在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之后输入的所有名称,它都在呼叫公司区域。
有人可以帮助我吗?
我可以这样做:尝试公司路线,如果失败,请尝试默认?
答案 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
{
...
}