我最近调试了一个ASP.NET MVC应用程序(Firefox + Firebug),我遇到了一些有趣的(对我而言)场景,所有GET请求都按预期传递参数在querystring中,大多数POST请求只是在表单中发布输入但是,有一些POST请求混合了查询字符串参数和表单输入。
有趣的是,根据查询字符串和已发布参数的混合构建模型,MVC模型绑定器完全没有问题。它是ASP.NET MVC和HTTP中有效且可接受的模式,还是更像是模型绑定器的容错实现?
答案 0 :(得分:2)
这是设计 - 默认的MVC模型绑定器将尝试匹配URI(查询字符串和/或路由数据)和正文中的模型参数。
当然,您可以实现自己的模型绑定器,其行为方式不同。
顺便说一下,在ASP.NET Web API中,这种行为不再那样了,并且URI和body参数不会混合。