同じページで異なるデータを送信する 2 つのフォームを含むページがあり、1 つは 2 つの ID を送信し、もう 1 つは 1 つの ID のみを送信するとします。どちらも同じページ (それ自体) に投稿しています。HTMLは次のようになります...
<form method="post">
<select name="regID">
...
</select>
<select name="jobID">
...
</select>
<input type="submit" value="Add">
</form>
<form method="post">
<button name="ID" type="submit" value="@ID">Remove</button>
</form>
さて、コントローラーで最初のフォームを処理するために私ができること
[HttpPost]
public ActionResult Index(int regID, int jobID)
{
....
}
ただし、追加して2番目のフォームを処理しようとすると
[HttpPost]
public ActionResult Index(int ID)
{
....
}
送信ボタンをクリックすると、エラーが発生します
The current request for action 'Index' on controller type 'UserJobController' is ambiguous between the following action methods:
System.Web.Mvc.ActionResult Index(Int32) on type careerninja.Controllers.UserJobController
System.Web.Mvc.ActionResult Index(Int32, Int32) on type careerninja.Controllers.UserJobController
それで、コントローラーで[HttpPost]メソッドを異なる値でオーバーロードして、2つの異なるフォームデータセットを処理することは可能ですか、それとも不可能ですか? この種の問題を処理するために把握していない可能性のある別の解決策はありますか?
基本的に、2番目のフォームでは、クリックするとコントローラーを呼び出してアイテムを削除し、アイテムを削除してからIndex()ビューを返す「削除」ボタンが必要です。