ASP.NET MVC模型从Querystring绑定到Object和Request-response模式

时间:2012-06-27 10:06:51

标签: asp.net asp.net-mvc model-binding

来自 HTTP POST 参数的模型绑定与模式请求 - 响应一起工作很好,所以我在我的控制器中接收了我需要的ViewModel,并且我用该对象调用服务层。 因此,永久封装在DTO ViewModel中。如果我想添加一些其他参数,我修改对象而不是方法声明。

如果可能,我需要使用 HTTP GET 请求(来自QueryString)自动执行相同的操作 例如:

/ Index / CountryName / PageNumber / 1 绑定到控制器索引(字符串CountryName,int PageNumber)

我希望它绑定到此控制器:索引(CountryQueryStringModel countryQueryStringModel)

class CountryQueryStringModel 
{
   public string CountryName, 
   public int PageNumber 
}

有了这个approch,如果我想添加一个过滤条件,我将它封装在对象CountryQueryStringModel

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你是对的Mark,路由默认模型绑定器就是这么做的。 这里找到的解决方案

context.MapRoute(
                null,
                "hotel/{countryName}/Page/{pageNumber}",
                new { controller = "ResultsCity", action = "Index"},
                new[] { "California_Front.Areas.Hotel_FR.Controllers" }

context.MapRoute(
                null,
                "hotel/{countryName}/",
                new { controller = "ResultsCity", action = "Index", PageNumber = 1 },
                new[] { "California_Front.Areas.Hotel_FR.Controllers" }

控制器是这样的

public ActionResult Index(CountryQueryStringModel CountryQueryStringModel)
{}

感谢您的帮助