将子域丰富的请求路由到MVC 3应用程序中的区域视图

时间:2012-04-05 23:00:04

标签: asp.net-mvc asp.net-mvc-3 subdomain asp.net-mvc-routing

我在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。

1 个答案:

答案 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时,用户变量将设置为“格言”。