ASP.NET MVC 3绑定确保表单值优先

时间:2013-07-18 12:52:19

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

如果POST请求在查询字符串和请求正文中具有相同的参数,哪个参数优先于模型绑定?

1 个答案:

答案 0 :(得分:6)

来自this article,在“价值投放者”部分。

  1. 以前绑定的操作参数,当操作是子操作时
  2. 表单字段(Request.Form)
  3. JSON请求体(Request.InputStream)中的属性值,但仅当请求是AJAX请求时
  4. 路由数据(RouteData.Values)
  5. 查询字符串参数(Request.QueryString)
  6. 已发布文件(Request.Files)
  7. 因此,如果相同的名称出现在多个位置,那么模型绑定器所在的最后一个位置将优先(我认为),在您的情况下,是查询字符串。

    最简单的事情就是试试吧。输入一个带有& id = 23“的网址,并确保您有一个名为”id“的HTML输入字段,然后将POST返回给控制器,看看哪个传递了。