gpt4 book ai didi

asp.net-mvc - 操作方法参数不为空,尽管它应该是

转载 作者:行者123 更新时间:2023-12-04 19:51:49 25 4
gpt4 key购买 nike

我在路由表中有这个条目:

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 以及它们各自表现不同的情况下,这是不是标准行为?

最佳答案

您的站点如何转移到“NewInstructions”操作?如果您来自 action return View("NewInstructions"),那么它可能会携带上一篇文章中的参数值。

但是,如果您使用 return RedirectToAction(...),则参数应与设置的一样,如果可选则为 null。

关于asp.net-mvc - 操作方法参数不为空,尽管它应该是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11035029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com