[英]Routing: The current request for action […] is ambiguous between the following action methods
[英]Action Routing: Application gets confused between the GET and POST methods
內容:
此時,使用GET方法構造的視圖需要兩個參數: id
和date
。 在此視圖中,存在一個表單,該表單使用參數id
通過POST方法將信息發送回Controller
GET方法
[HttpGet]
public async Task<IActionResult> DetailsAdmin(int? id, [ModelBinder(typeof(PModelBinder))]DateTime? date)
{
{...}
}
開機自檢方法
[HttpPost, ActionName("DetailsAdmin")]
[ValidateAntiForgeryToken]
[Route("HechosLiquidadors/DetailsAdmin/{id}")]
public async Task<IActionResult> DetailsAdmin(int? id)
{
{...}
}
問題:
當視圖內的表單將信息發送到控制器時,它將進入GET操作而不是POST操作。
表格:
<form id="@(String.Format("{0}{1}","form",Model[i].HechosID))"
asp-action="DetailsAdmin" method="post" asp-route-id="@Model[i].HechosID" ></form>
我試過使用自定義路由到POST操作方法,但是沒有運氣。 我該如何糾正這個問題,以便表單正確指向POST操作?
在這兩種操作方法中,所有參數都是可選的。 因此,Mvc無法選擇“最佳候選”方法來執行。 更改如下第一個操作,並檢查ID不為0:
[HttpGet]
public async Task<IActionResult> DetailsAdmin(int id = 0, [ModelBinder(typeof(PModelBinder))]DateTime? date)
{
if (id != 0)
{
}
{...}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.