![](/img/trans.png)
[英]Is This How to Create a Data Transfer Object (DTO) with Entity Framework Core & ASP.NET Core MVC 2.2+ and 3.0
[英]Multiple forms on an asp.net core 2.2+ web application
有人可以解釋以下意外行為嗎? 我已經在核心 2.2 和 3.1 中對此進行了測試。
我試圖在同一個剃須刀頁面上發布 2 個不同的表單。
這是 HTML:
<form method="post">
<button type="submit">post</button>
</form>
<form method="post">
<button type="submit" asp-page-handler="WTF" >post wtf</button>
</form>
這是后面的剃刀頁面:
public void OnGet()
{
Debug.WriteLine("Get");
}
public void OnPost()
{
Debug.WriteLine("Post");
}
public void OnPostWTF()
{
Debug.WriteLine("PostWTF");
}
我希望當我按下“發布”按鈕時,會調用 OnPost 操作。 當我按下“post wtf”按鈕時,會調用 OnPostWTF 操作。 有這種事。 如果我最初按下“發布”按鈕,則會調用預期的操作。 但是,一旦我按下“post wtf”按鈕,所有后續帖子只會調用 OnPostWTF 操作,無論按下哪個按鈕!
非常好的指南: https : //www.learnrazorpages.com/razor-pages/handler-methods
處理程序的名稱作為查詢字符串參數添加到表單的操作中。
因此,當您在沒有處理程序的情況下發布時,當前 url 將被發布到。
在您的情況下,它將是您使用查詢參數handler=WTF
切換到的那個。
當您在同一頁面中有多個表單時,最佳實踐是為每個請求設置一個處理程序以避免此類麻煩。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.