我在 asp.net 核心剃須刀頁面上的 GET 表單上有一個按鈕
<form method="get" asp-page="Index">
<button type="submit" asp-page="Index" asp-page-handler="Something" ></button>
</form>
和背后的代碼
public IActionResult OnGetSomething(){
//... some code
return Page();
}
我的問題是永遠不會執行 onget 處理程式代碼如果表單是 POST,onpost 處理程式將正常作業,但如果它是 GET,則它不起作用
那么我在這里錯過了什么?以及如何使 onget 處理程式作業?
uj5u.com熱心網友回復:
當您使用 提交表單GET時,瀏覽器會丟棄表單操作中的查詢字串值,并用從表單欄位構建的新查詢字串替換它們。您可以通過向表單添加適當的隱藏欄位來訪問您的處理程式:
<form method="get" asp-page="Index">
<input type="hidden" name="handler" value="Something" />
<button type="submit" >Get</button>
</form>
uj5u.com熱心網友回復:
由于引數未匹配,您無法獲取方法。認為:
在控制器中
[HttpGet]
public IActionResult Create()
{
return View();
}
//Post Method
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(string Name)
{
}
在視圖中:
<form asp-action="Create">
<div asp-validation-summary="ModelOnly" ></div>
<div >
<label asp-for="Name" ></label>
<input asp-for="Name" />
<span asp-validation-for="Name" ></span>
</div>]
<div >
<input type="submit" value="Create" />
</div>
</form>
然后它使用 post 方法,因為它有 1 個引數(名稱)。如果我們沒有凈任何輸入或引數不一樣,那么它會采用不同的方法。
它是方法多載的概念
詳細方法多載https://www.geeksforgeeks.org/c-sharp-method-overloading/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/416848.html
標籤:
下一篇:轉換兩個字串并相互比較
