簡體   English   中英

動作路由:應用程序在GET和POST方法之間感到困惑

[英]Action Routing: Application gets confused between the GET and POST methods

內容:

此時,使用GET方法構造的視圖需要兩個參數: iddate 在此視圖中,存在一個表單,該表單使用參數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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM