在控制器上找不到操作方法

时间:2013-07-05 19:29:01

标签: c# asp.net-mvc

尽管有很多类似的问题,但似乎都不相关,所以

我对此签名采取了行动

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

为什么?

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

只能有一个原因,这正是它的说法。网址错了。要对此进行测试,请使用浏览器开发人员工具并检查页面发布的URL以及实际URL的内容。 Controller vs PizzaController?或....你正在接受一个POST。 POST没有SaveOrder?id =。

答案 2 :(得分:1)

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