Asp.net mvc 如何在控制器之间传递参数(隐藏在url中)-mvc
我的第一个actioncontroller是:Asp.net mvc 如何在控制器之间传递参数(隐藏在url中)-mvc,asp.net-mvc,parameters,controller,Asp.net Mvc,Parameters,Controller,我的第一个actioncontroller是: return RedirectToAction("Index", "Authentication",new {code = result }); 我在不同的控制器中使用“结果”参数。像 public ActionResult Index(string code) { ... TempData["valcode"] = code; return View
return RedirectToAction("Index", "Authentication",new {code = result });
我在不同的控制器中使用“结果”参数。像
public ActionResult Index(string code)
{
...
TempData["valcode"] = code;
return View();
}
[HttpPost]
public ActionResult AuthenticateUser(string validationcode)
{
if (validationcode == TempData["valcode"].ToString())
{
return RedirectToAction("Index", "Home");
}
else
{
...
}
}
它工作正常,但在url中,我看到了代码值。()
我不希望在url中看到代码值
如何从url中隐藏它?(除了加密)尝试使用会话在控制器之间传递数据
Session["valcode"] = code;
但请注意,使用会话在控制器之间传递数据是一个坏主意,因为它会
使用应用程序的应用程序池,这将最终降低应用程序的速度。
如果必须使用会话,请确保在使用会话变量后销毁
希望这有帮助。尝试使用会话在控制器之间传递数据
Session["valcode"] = code;
但请注意,使用会话在控制器之间传递数据是一个坏主意,因为它会
使用应用程序的应用程序池,这将最终降低应用程序的速度。
如果必须使用会话,请确保在使用会话变量后销毁
希望这有帮助。你做不到。你的控制器方法不是通灵的。如果不传递该值,则控制器无法接收该值。您可以始终使用
TempData
,但这只能持续一个请求,如果用户刷新浏览器,则会丢失。您不能。你的控制器方法不是通灵的。如果不传递该值,则控制器无法接收该值。您可以始终使用TempData
,但这只能持续一个请求,如果用户刷新浏览器,则该请求将丢失。