我在MVC 3应用程序中使用Maarten Balliauw approach子域路由。
基本上我在RouteTable.Routes中添加了以下两条路线:
_routes.Add("DomainRoute", new DomainRoute(
"{user}.localhost",
"{action}/{id}",
new { controller = "FileUpload", action = "Index", user = "" });
_routes.MapRoute("Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" });
问题是我的FileUpload
控制器应该驻留在单独的MVC Area
中(称为上传)。
我还需要将{user}参数传递给FileUpload控制器的Index操作。我应该如何设置此子域到区域操作重定向?
P.S。我可以向你保证,这个问题似乎没有重复。其他人正在询问如何将子域视为一个区域,而不是如何将子域视为参数,然后将请求路由到区域内的控制器。
重要提示:只要用户导航到子域(例如max.localhost.com),我就需要使用子域到区域视图路由,而不是导航到max.localhost.com/upload。
答案 0 :(得分:1)
应该这么简单:
_routes.Add("DomainRoute", new DomainRoute(
"{user}.localhost",
"upload",
new { controller = "FileUpload", action = "Index", user = "" });
[HttpPost]
public ActionResult Index(HttpPostedFileBase file, string user)
{
}
当您发布到http://maxim.localhost/upload时,用户变量将设置为“格言”。