我在路由表中有这个条目:
routes.MapRoute(null,
"instructions/new",
new { controller = "Instructions", action = "NewInstructions" },
new { httpMethod = new HttpMethodConstraint("GET") }
);
这种方法
[HttpGet]
public ActionResult NewInstructions(Client client)
{
var instructions = instructionService.Create(client);
return RedirectToAction("Instructions", new { id = instructions.Id });
}
和这个方法的链接
<a href="/instructions/new">create a new one</a>
在这种情况下,client
调用操作方法时参数不为空。相反,它显然是通过调用Client
的无参数构造函数来创建的。
但是,当我通过 POST 访问相同的操作方法时,该client
参数被正确设置为null
.
DefaultModelBinder
如果请求未提供参数值以区分 GET 和 POST 并且每个参数的行为不同,这是一种标准行为吗?