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

axk*_*axk 5 asp.net-mvc asp.net-mvc-3

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

Jas*_*ans 6

这篇文章中,在"Value Provders"部分.

  1. 以前绑定的动作参数,当动作是子动作时
  2. 表单字段(Request.Form)
  3. JSON请求体(Request.InputStream)中的属性值,但仅当请求是AJAX请求时
  4. 路线数据(RouteData.Values)
  5. 查询字符串参数(Request.QueryString)
  6. 发布文件(Request.Files)

因此,如果相同的名称出现在多个位置,则模型绑定器所在的最后一个位置将优先(我认为),在您的情况下,查询字符串.

最简单的事情就是试试吧.输入一个带有&id = 23"的URL,并确保您有一个名为"id"的HTML输入字段,并将POST返回给控制器并查看哪一个被传递.