[C#] ASP.NET Core 6.0 - 一種可以將 Page 當 WebAPI 用的方法,但不推薦
今天來寫一個不推薦使用的小技巧,但是又是一個可以解決一些小問題的方法
簡單說一下情境,在 ASP.NET Webform 時代,有時候真的有時候給客戶一個東西要 retun JSON 的答案
但是我又不想使用一大個框架來解決問題,我會就把 Page 清乾淨後 直接處理POST過來的參數再 retun 我要的 JSON string
這陣子我又遇到了,當然最好的解決方法,請使用 WebAPI ,這不是一個好的範例
用這方法請自己知道自己在做啥危險性有多高在評估使用。
先說一下環境,我先建立一個 ASP.NET 6 的 Page SimpleEchoPost 這裡面 我會簡單的實作 OnPost
之後我再透過一頁 html 透過 AJAX POST 一些資料到 SimpleEchoPost ,並且拿回資料
1. 製作 SimpleEchoPost (模擬備呼叫的 API) ,這裡面需要注意的是 _Layout=null 這樣才會回傳一個沒有 Layout 的文本
SimpleEchoPost.cshtml
2.在實做的部份有兩個重點 在該 PageModel 上你必須加入 [IgnoreAntiforgeryToken] 這 Tag,不然你在 AJAX 呼叫時會出現
參照網址政策: strict-origin-when-cross-origin 的 400 error code
OnPost部分我允許傳入 fistname, lastname 並且回傳就是單純的 string
SimpleEchoPost.cshtml.cs
3. AJAX 呼叫的部分
案例結束,這樣就不用開 WebAPI 可以自己寫一個簡單的 service ,不過缺點就是 你使用了 IgnoreAntiforgeryToken 安全性你得好好評估
在來就是 WebAPI 難道不香嗎?
使用前可以參考
https://learn.microsoft.com/zh-tw/aspnet/core/security/anti-request-forgery?view=aspnetcore-6.0