2014-10-01 44 views
2

好了,所以我的行動,是在控制器和代碼是:調用控制器動作MVC5

[HttpPost] 
public ActionResult SaveRow(int? id) 
{ 
    //some db operations. 
    return RedirectToAction("Index"); 
} 

,並鑑於我

@Html.ActionLink(Translation.Accept, "SaveRow", new { id = item.New.RecId }) 

我得到錯誤404,當我點擊按鈕,可以運行此操作時無需重定向至url /SaveRow/? 也許這個按鈕被使用錯了我是新的mvc5所以要耐心等待。

+3

鏈接是'GET',您已將該方法標記爲'POST'。使用[表單](http://msdn.microsoft.com/en-us/library/dd492590(v = vs.118).aspx)來訪問它。 – GSerg 2014-10-01 08:21:27

回答

5

如記錄here: -

指向一個動作2.An超鏈接或錨標記將永遠是一個HTTPGET。

試試下面的代碼將得到的,因爲默認情況下它需要[HttpGet]所以刪除[HttpPost]屬性

[HttpGet] 
public ActionResult SaveRow(int? id) 
{ 
    //some db operations. 
    return RedirectToAction("Index"); 
} 

和MVC的理想設計,我會建議你使用@Html.BeginForm訪問pertiular POST調用編輯功能

+0

使用[HttpGet] - 認爲你錯過了代碼。 – 2014-10-01 08:22:35

+1

默認情況下,它需要[HttpGet] @RyanMcDonough – Neel 2014-10-01 08:22:59

+0

總是值得添加,所以你可以一目瞭然,也可以覆蓋默認,所以如果發生它仍然是GET。 – 2014-10-01 08:24:55