public IActionResult Create(String UserID) { //do some action }
鑒于,我正在發送引數
<a href="/ProductRegistration/[email protected]"></a>
在此方法中,值顯示在 URL 中我不想在 URL 中顯示我們如何從正文中發送引數我的結果是 localhost:443//Admin/Create/5 我想要這種型別的結果 localhost:443// Admin/Create 并且這個創建方法應該可以接收一個引數
uj5u.com熱心網友回復:
Mubashir,也許這樣的事情可以幫助你:
using Microsoft.AspNetCore.Mvc;
[HttpPost]
public IActionResult Create([FromBody] String UserID) { //do some action }
@using (Html.BeginForm("ActionName", "ControllerName", FormMethod.Post))
{
//Code Here
}
uj5u.com熱心網友回復:
HTTP 允許在服務器上執行適合特定操作的不同方法。理論上GET旨在獲取資源(例如網頁,但也可能是 JSON 物件),因此請求中根本不允許任何正文。雖然您可以濫用自定義標題,但不要。未來的開發者,甚至是你未來的自己,都會感謝你。
POST另一方面,請求允許將資料發布到服務器。根據規范,我認為之后應該期望資源在服務器上被更改,但在現實世界中,由于非常明顯的原因,它經常被濫用來傳輸登錄資料(你不希望你的密碼出現在你的瀏覽器中歷史,這將是GET請求的情況 - 這可能不再適用,因為它不會出現在 JS HTTP 請求中,即使請求是 a GET)。
POST因此,正如尼克所說,您必須更改控制器以允許請求,HttpPostAttribute并用表單替換鏈接,因為鏈接根本不允許POST請求(GET是瀏覽器的默認設定)。
請參閱此問題以獲取更多要使用的選項,POST而不是GET在 HTML 頁面中使用(在大多數情況下最終會是某種形式)。
uj5u.com熱心網友回復:
從 URL 中洗掉 ID 不會對任何人隱藏它。除非您由于其他一些限制而明確需要它,否則我不會打擾。如果您想隱藏它,請考慮加密您的 ID 或使用 GUID 代替整數。VS 提供System.Security.Cryptography,所以你不需要下載任何東西,它的 AES 加密被認為是當今最常用的最安全的加密方法之一。但無論如何,這只是一個建議,現在回答你原來的問題。
在您看來,您可以執行以下操作:
@using(Html.BeginForm()){
<input type="text" name="nameofparameter" value="@UserObject.UserID"/>
<input type="submit" value="Submit" formaction="@Url.Action("ActionName","Controller")"/>
}
然后在您的控制器中,您將擁有
[HttpPost]
public ActionResult ActionName(int nameofparameter) //note the automatic parsing
// your code here
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/476487.html
標籤:C# 网 asp.net-mvc
上一篇:如何在HTTP正文流期間/之后發送HTTP標頭?有這方面的規范作業嗎?
下一篇:獲取按條件過濾的集合中元素的位置
