2011-08-10 25 views
0

有沒有像in this question.爲什麼行動上沒有控制器異常發現發生

的情況」 ...... 我有這樣的代碼:

return RedirectToAction("Save", "RequestFinishedDocument", 
           new {requestId = requestFinished.Request_ID, requestFinishedId = requestFinished.ID}); 

而在我的控制,我有:

public class RequestFinishedDocumentController : Controller 
{ 
    [HttpPost] 
    public JsonResult Save(int requestId, int requestFinishedId) 
    { 
     //todo 
    } 
} 

但是在RedirectToAction調用中,我收到異常消息:在控制器SuiP.Controllers.RequestFinishedDocumentController上找不到公共操作方法'Save' 」。

怎麼了?

謝謝...」

爲什麼asp.net的MVC拋出異常‘的行動沒有發現......’當動作帶有HttpPost屬性,而不是路由趕上顯示找不到網頁的所有航線。

+1

我看着引用的問題。目前的答案在你的案例中有何不同? RedirectToAction是一個get,因此它看不到Save的HttpPost歸因操作。 –

回答

2

你重定向到一個動作後,我從一個GET操作方法設定。

你不能重定向到一個POST方法

+0

不,我不知道。它是頁面路徑中的一個url,用於Ajax post。谷歌機器人來找到它並嘗試導航到它。 –

+1

@Jenea:如果您要離開頁面上的鏈接,那麼您應該有辦法處理HTTP GET。您可以(1)保持原樣並繼續記錄錯誤,(2)除[HttpPost]外還提供一個[HttpGet]來處理鏈接被沒有JavaScript的用戶訪問的情況,或者(3)刪除從頁面的鏈接(並通過JavaScript添加它) –

2

它看起來像你重定向到一個get方法。

你的控制器有一個保存動作的後期方法,但不是Get。

+0

不,我不知道。它是頁面路徑中的一個url,用於Ajax post。谷歌機器人來找到它並嘗試導航到它。 –

+1

對於我所看到的代碼顯示,RedirectToAction會將你重定向到一個get方法,在你的例子中試圖將你重定向到httpGet的Save方法,因爲你沒有在你的控制器中定義一個httpGet Save方法,它會拋出一個錯誤。 – Yag

相關問題