2 回答

TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊
假設(shè)您有這樣的標(biāo)記:
<button type="submit" asp-page-handler="delete" asp-route-id="@contact.Id">delete</button>
正確的刪除方法是OnPostDelete
(或OnPostDeleteAsync
)。
所以,可以更新為:
public void OnPostDelete(int id){ }
文檔狀態(tài):
按照慣例,根據(jù)方案根據(jù)處理程序參數(shù)的值來(lái)選擇處理程序方法的名稱
OnPost[handler]Async
此外,Async
后綴是可選的:
命名后綴是可選的
Async
,但通常按照約定用于異步函數(shù)。

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊
沒(méi)有OnDelete
/ OnPut
。這是因?yàn)?Razor 頁(yè)面直接面向 Web 視圖,即在瀏覽器選項(xiàng)卡/窗口中顯示的頁(yè)面。瀏覽器中沒(méi)有發(fā)送 DELETE/PUT 請(qǐng)求的本機(jī)方式,因此沒(méi)有理由支持它們。相反,此類任務(wù)是通過(guò) HTML 表單元素處理的,該元素將通過(guò) POST 發(fā)送。因此,您將使用OnPost()
它來(lái)處理它。
文檔建議創(chuàng)建一個(gè)新的用于刪除的 Razor 頁(yè)面,它有自己的OnGet
方法OnPost
,專門用于處理刪除?;蛘?,您可以簡(jiǎn)單地以OnPost[Something]
. 對(duì)于刪除,可能是OnPostDelete
,而對(duì)于更新,您可能有OnPostUpdate
. 名稱無(wú)關(guān)緊要,除非您需要將其作為如下形式傳遞handler
:
<form asp-page="Foo" asp-handler="Delete">
如果您需要通過(guò)瘦客戶端(HttpClient
、AJAX、Postman 等)進(jìn)行交互,那么您應(yīng)該完全避免使用 Razor Pages,并堅(jiān)持使用完全支持所有 HTTP 動(dòng)詞的傳統(tǒng)控制器。
- 2 回答
- 0 關(guān)注
- 136 瀏覽
添加回答
舉報(bào)