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

C# 在控制器上找不到操作方法,c#,asp.net-mvc,C#,Asp.net Mvc,尽管有很多类似的问题,但似乎没有一个是相关的,所以 我有一个有这个签名的行动 [HttpPost] public ActionResult SaveOrder(PizzaOrder pizza, Guid? id){ ... } 我正在尝试提交一个带有按钮的表单。我已确认该按钮向发送帖子 https://my/controller/url/SaveOrder?id=... 此外,PizzaOrder数据似乎也已正确过帐 但是,我的行动从未被击中。相反,MVC抛出一个异常 A publ

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

我有一个有这个签名的行动

[HttpPost]
public ActionResult SaveOrder(PizzaOrder pizza, Guid? id){
    ...
}
我正在尝试提交一个带有按钮的表单。我已确认该按钮向发送帖子

https://my/controller/url/SaveOrder?id=...
此外,PizzaOrder数据似乎也已正确过帐

但是,我的行动从未被击中。相反,MVC抛出一个异常

A public action method 'SaveOrder' was not found on controller
'Controllers.PizzaController'.

为什么?

原因只有一个,这正是它所说的。url是错误的。要对此进行测试,请使用browser developer工具并检查页面发布到的url以及实际url。控制器vs比萨控制器?或你正在做一个到达一个岗位的动作。POST没有SaveOrder?id=。

原因只有一个,这正是它所说的。url是错误的。要对此进行测试,请使用browser developer工具并检查页面发布到的url以及实际url。控制器vs比萨控制器?或你正在做一个到达一个岗位的动作。POST没有存储顺序?id=。

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

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

您尝试的请求是GET not POST,因为您正在使用查询字符串?id=。。。删除
[HttpPost]
属性后重试

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

是否可以使用actionlink/submitbutton发布视图?请显示实际URL。它不应该是公共ActionResult保存顺序(Guid?id),检查您的路线显示您呼叫的路线和url您可以使用actionlink/submitbutton发布您的视图吗?请显示实际的url。它不应该是公共ActionResult存储顺序(Guid?id),检查您的路线显示您呼叫的路线和url,然后,如果它不能确定它是正确的,它就不会命中方法-表单中也需要有一个“pizza”(具有适当绑定的字段)。如果它不能确定它是正确的,它就不会命中方法-表单中也需要有一个“pizza”(具有适当绑定的字段)。看起来,但这会改变响应,比如删除属性可以解决问题…:)似乎是,但这改变了响应,例如删除属性可以解决问题…:)