1

尽管有大量与此类似的问题,但似乎没有一个相关,所以

我有这个签名的动作

[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'.

为什么?

4

3 回答 3

3

POST 不会在 URL 查询字符串中发送表单数据。

于 2013-07-05T19:45:41.590 回答
2

只有一个原因,这正是它所说的。网址错误。要对此进行测试,请使用浏览器开发人员工具并检查页面发布到的 url 以及实际 url 是什么。控制器与披萨控制器?或者....您正在执行 GET 到 POST。POST 没有 SaveOrder?id=。

于 2013-07-05T19:35:55.423 回答
1

您正在尝试的请求是 GET 而不是 POST,因为您正在使用 Querystring 传递参数 ?id=... 删除[HttpPost]属性后尝试

于 2013-07-05T19:50:27.463 回答