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

本文关键字:操作方法 找不到 控制器 | 更新日期: 2023-09-27 18:21:18

尽管有很多类似的问题,但似乎没有一个是相关的,所以

我有一个行动与这个签名

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

为什么?

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

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

原因只有一个,这正是它所说的。url错误。要测试这一点,请使用浏览器开发工具并检查页面发布到的url和实际url。Controller与PizzaController?或您正在执行GET到POST。POST没有SaveOrder?id=。

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