0

我在 MVC 3 应用程序中使用Maarten Balliauw 方法进行子域路由。

基本上,我在 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 操作中。我应该如何设置这个子域到区域的动作重定向?

PS我可以向你保证,这个问题似乎没有重复。其他人在询问如何将子域视为一个区域,而不是如何将子域视为参数,然后将请求路由到区域内的控制器。

重要提示:当用户仅导航到子域(如 max.localhost.com)时,我需要使用子域到区域的视图路由,而不是在导航到 max.localhost.com/upload 时。

4

1 回答 1

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

于 2012-04-05T23:07:16.160 回答