发送请求@action到控制器

时间:2016-08-23 16:05:57

标签: c# asp.net post razor

我想向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>

1 个答案:

答案 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
}