2013-07-05 31 views
0

發現儘管一噸的類似這樣的問題,似乎都不相關,所以操作方法並沒有在控制器

我有這個簽名

[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

您可以發佈與ActionLink的/提交按鈕你的看法? – Thousand

+0

請顯示實際的網址。 – alexn

+1

不應該是公開的ActionResult SaveOrder(Guid?id),請檢查你的路線 –

回答

2

只能有一個原因,這正是它的說法。該網址是錯誤的。要測試它,請使用瀏覽器開發人員工具並檢查該頁面發佈的URL以及實際的URL是什麼。控制器vs比薩控制器?或....你正在做一個GET的POST。 POST沒有SaveOrder?id =。

2

POST不發送表格 URL查詢字符串中的數據。

+0

而且,如果它不能識別它是正確的 - 在這種形式下,還需要有一個「披薩」(帶有適當綁定的字段)。 – GalacticCowboy

1

你想爲你傳遞參數與查詢字符串?ID就是讓不POST = ...嘗試要求,移除[HttpPost]屬性後

+0

這裏有迴音嗎? – Greg

+0

似乎是,但這是改變響應像刪除屬性可以解決問題... :) –

相關問題