2014-10-01 2 views
2

Ok так что я получил действие, которое находится в контроллере и код:Вызов 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

ответ

5

Как документально here: -

2.An гиперссылка или якорь тег, который указывает на действие будет ВСЕГДА быть HttpGet.

Try ниже код ввода GET, так как по умолчанию он принимает [HttpGet] так удалить [HttpPost] атрибут

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

и как идеальная конструкция MVC Я хотел бы предложить вам использовать @Html.BeginForm для доступа pertiular POST вызова редактирования functionailty

+0

Использование [HttpGet] - подумайте, что вы пропустили это из кода. –

+1

по умолчанию требуется [HttpGet] @RyanMcDonough – Neel

+0

Всегда стоит добавить, чтобы вы могли сразу увидеть, и вы можете переопределить значение по умолчанию, поэтому, если это произойдет, все равно будет GET. –

Смежные вопросы