2016-08-23 2 views
0

Я хочу отправить запрос POST в AdminController. Но когда я смотрю его в отладчике, запрос GET.отправил запрос на сообщение @action контроллеру

<form method="post"> 
<input type="button" formmethod="post" onclick="location.href='@Url.Action("Index","Admin",new {rowID = @p.ProductID})'" value="Delete"/> 
</form> 
+1

Это Контроллер определяет глагол, а не форму html. Украсьте свое действие с помощью '[HttpPost]' – Crowcoder

ответ

0

Поскольку вы написали код, чтобы сделать запрос GET на кнопку отправки, нажмите!

OnClick = "location.href = '@ Url.Action ("Index", "Admin", новый {RowId = @ p.ProductID})'"

Здесь вы настраиваете значение location.href для /Admin/Index, и это будет новый запрос GET.

Если вы хотите опубликовать сообщение, просто удалите событие onclick на кнопке. Если вы хотите отправить значение ProductID, вы можете сохранить это в скрытом поле ввода внутри своей формы, и когда вы нажмете кнопку «Отправить», этот элемент формы также будет отправлен.

@using(Html.BeginForm("Index","Admin")) 
{ 
    <input type="hidden" name="rowID" value="@p.ProductID" /> 
    <input type="submit" value="Delete"/> 
} 

Предполагая, что ваш HttpPost индекс метод действия AdminController имеет параметр с таким же именем, что и имя входа, чтобы принять ProductID.

[HttpPost] 
public ActionResult Index(int rowID) 
{ 
    // to do : Return something 
} 
Смежные вопросы