My Index に WebGrid があり、別々のアクションを実行するための 2 つの送信ボタンがあります。このコード
からの Webgrid
投稿でボタンがクリックされたときに、それぞれのアクションを指示する方法。
しかし、ボタンのいずれかで送信すると、最初の [HttpPost] アクションのみが呼び出されます。私のコード:
@using (Html.BeginForm())
{
<fieldset>
<div id="CheckBoxDiv">
@grid.GetHtmlWithSelectAllCheckBox(
tableStyle: "grid",
checkBoxValue: "ProductID",
columns: grid.Columns(
grid.Column(columnName: "ProductName"),
grid.Column(columnName: "Quantity"),
grid.Column(" ", " ", format: @<a href="@Url.Action("Index", "Edit", new { UserID = "12345", partnerid = "111" })">Edit</a>),
grid.Column(columnName: "Rate"),
grid.Column(columnName: "Price")
)
)
</div>
<p>
<input type="image" class="btn" name="command" value="Checkout" src="~/Images/Checkout.PNG" style="width: 62px; height: 25px;" />
<input type="image" class="btn" name="command" value="Delete" src="~/Images/Remove.png" style="width: 62px; height: 25px;" />
</p>
</fieldset>
}
*コントローラーコード *
[HttpPost]
public ActionResult Index(string[] selectedRows)
{
for (int i = 0; i < selectedRows.Length; i++)
{
var objselected = selectedRows.ToList();
SqlCommand scmd = new SqlCommand("SpCheckDetails", con);
scmd.CommandType = CommandType.StoredProcedure;
scmd.Parameters.AddWithValue("@userid", id);
scmd.Parameters.AddWithValue("@partnerID", partnerid);
scmd.Parameters.AddWithValue("@productID", objselected);
scmd.ExecuteNonQuery();
}
return RedirectToAction("Index","Checkout");
}
[HttpPost]
public ActionResult Delete(string UserID, string partnerid, string productid)
{
return RedirectToAction("Index", "Cart");
}
このリンクを使用して 2 つのアクションを呼び出してみました。ただし、コマンド値は呼び出されません。助言がありますか。
編集 :
public ActionResult Index()
{
string id = "12345";
string partnerid = "xxxxx";
return View(_service.GetCartDetails(id,partnerid));
}
[AcceptVerbs(HttpVerbs.Post)]
[AcceptParameter(Name = "Checkout")]
public ActionResult Index(string[] selectedRows, string button)
{
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
[AcceptParameter(Name = "Delete")]
public ActionResult Delete(string[] selectedRows,string UserID, string partnerid, string productid)
{
return View();
}
コードを表示
<input type="image" class="btn" name="Checkout" value="Checkout" src="~/Images/Checkout.PNG"/>
<input type="image" class="btn" name="Delete" value="Delete" src="~/Images/Remove.png" />
ボタンの値を取得するために ActionMethodSelectorAttribute を使用しました。ただし、どちらのボタンをクリックしても、インデックス ビューに移動します。
私のコードに間違いはありますか??