2016-08-23 122 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( 」指數「, 」管理「,新{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"/> 
} 

假設AdminController您HttpPost Index操作方法有相同的名字輸入名稱,接受產品ID的參數。

[HttpPost] 
public ActionResult Index(int rowID) 
{ 
    // to do : Return something 
} 
相關問題