我想向AdminController发送POST请求。但是当我在调试器中观察时,请求是GET。
<form method="post">
<input type="button" formmethod="post" onclick="location.href='@Url.Action("Index","Admin",new {rowID = @p.ProductID})'" value="Delete"/>
</form>
答案 0 :(得分:0)
因为您编写代码以在提交按钮上执行GET请求,请单击!
onclick =&#34; location.href =&#39; @ Url.Action(&#34; Index&#34;,&#34; Admin&#34;,new {rowID = @ p.ProductID})&#39;&#34;
在这里,您将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"/>
}
假设AdminController的HttpPost Index操作方法有一个与输入名称相同的参数来接受productId。
[HttpPost]
public ActionResult Index(int rowID)
{
// to do : Return something
}