尽管有很多类似的问题,但似乎都不相关,所以
我对此签名采取了行动
[HttpPost]
public ActionResult SaveOrder(PizzaOrder pizza, Guid? id){
...
}
我正在尝试使用按钮提交表单。我已经验证该按钮发送了一个POST到
https://my/controller/url/SaveOrder?id=...
似乎还正确发布了PizzaOrder数据。
但是,我的行动永远不会受到打击。相反,MVC抛出异常
A public action method 'SaveOrder' was not found on controller
'Controllers.PizzaController'.
为什么?
答案 0 :(得分:3)
POST不会在URL查询字符串中发送表单数据。
答案 1 :(得分:2)
只能有一个原因,这正是它的说法。网址错了。要对此进行测试,请使用浏览器开发人员工具并检查页面发布的URL以及实际URL的内容。 Controller vs PizzaController?或....你正在接受一个POST。 POST没有SaveOrder?id =。
答案 2 :(得分:1)
您正在尝试的请求是GET而不是POST,因为您使用Querystring传递参数?id = ...在删除[HttpPost]
属性后尝试