少なくとも私にとっては、私は奇妙な行動を経験しています。明らかに異なる署名を持つコントローラー内に 2 つのメソッドを記述しました。
[Route("~/Wallets/{walletId}/Transactions/Add")]
public async Task<ActionResult> Add(long walletId)
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Add(AddTransactionViewModel model)
問題は、Ajax.BeginForm を使用して POST メソッドを呼び出そうとするたびに、GET メソッド (最初のメソッド) が呼び出されることです。
@using (Ajax.BeginForm("Add", "Transactions",
new AjaxOptions() { HttpMethod = "POST" })
{
...
}
さて、なぜこれが起こっているのですか?もちろん、GET メソッドの名前を AddTransaction に変更すると、コードは機能しますが、そのままでは機能しない理由を理解したいと思います。