我正在使用以下方式获取查询字符串:
public ActionResult Index(int id)
{
var queryString = Request["myQueryString"];
}
然后我看了看:
help-testing-mvc3-controller-that-accesses-querystring
哪个州:
直接使用HttpRequest是违反MVC的设计模式的。您可以将操作的查询字符串变量作为参数访问。
我真的不明白这一点。我对设计模式做了什么?如果这是为什么,那怎么可能呢?
答案 0 :(得分:1)
它打破了模型绑定的概念。单元测试也很复杂,并试图为测试新建HttpContext
。如果它只是一个参数,你可以传递值。
答案 1 :(得分:1)
首选(也更容易阅读)的方法是:
public ActionResult Index(int id, string myQueryString)
{
...
}
答案 2 :(得分:0)
您的操作方法应该从您的表单提交大部分数据。 MVC的优势之一是它内部的模型绑定。看看这个页面,因为它有一个很好的例子:
http://www.codeproject.com/Articles/159749/ASP-NET-MVC-Model-Binding-Part1
您可以接受文字(字符串,bool等),但也可以在操作方法中接受强类型对象。