簡體   English   中英

Asp.net MVC RedirectToAction在URL中顯示參數

[英]Asp.net MVC RedirectToAction Show Parameter in URL

我需要使用另一個動作方法中的模型對象重定向到動作。 沒關系,但是當我這樣做時,我可以看到URL地址欄中的所有參數。 既然是付款,對我來說不合適嗎?

我可以基本上傳遞ID,但我的模型是viewmodel,沒有Key。

我怎么能阻止這個。

在這種情況下,您真正​​應該做的是返回視圖而不是redirect

喜歡:

return View(viewModel);

但是,如果您真的更喜歡進行重定向,可以將ViewModel放在TempData中,然后重定向到該操作:

TempData["MyViewModelFromRedirect"] = viewModel;

在您的重定向操作中:

var ViewModel = (MyViewModel)TempData["MyViewModelFromRedirect"];

重定向結果將HTTP重定向結果(302)返回給瀏覽器,其中包含url中的所有參數。 如果您在路由值中傳遞模型屬性,它們將被序列化為字符串。

因此,正如您所說,瀏覽器(在客戶端)將看到所有這些參數,瀏覽器將向新網址發出另一個GET請求。

在這種情況下,推薦的方法是在控制器上使用TempData來設置所有服務器端數據。 然后重定向到新操作。

TempData["mymodel"] = myModel;
return Redirect(Url.Action("newaction", "newcontroller"));

在新的Action中,您可以從TempData中檢索模型

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM