RedirectToAction 并传递一个值?
RedirectToAction and pass a value?
如果我有一个控制器操作可以重定向到另一个操作,如下所示:
public ActionResult Index()
{
RedirectToAction("Redirected", "Auth", new { data = "test" });
}
public ActionResult Redirected(string data = "")
{
return View();
}
URL 栏中会有类似 "Redirected?data=test" 的内容,AFAIK 是正确的行为。有没有一种方法可以直接将变量传递给重定向的 ActionResult 而无需在客户端上进行更改?
我想将 "test" 直接传递给重定向的 ActionResult,而不更改 URL。我确定有一种简单的方法可以做到这一点,但它正在逃避我。
我知道我可以在我可以传递变量的函数之外创建一个静态变量,但这似乎不是一个合适的解决方案。
您可以使用 TempData
变量。
public ActionResult Index()
{
TempData["AfterRedirectVar"] = "Something";
RedirectToAction("Redirected", "Auth", new { data = "test" });
}
public ActionResult Redirected(string data = "")
{
string tempVar = TempData["AfterRedirectVar"] as string;
return View();
}
This link 可能会有帮助。
是,使用TempData。
public ActionResult Index()
{
TempData["data"] = "test";
RedirectToAction("Redirected", "Auth"});
}
public ActionResult Redirected()
{
var data = TempData["data"].ToString();
return View();
}
希望对您有所帮助:
在我看来,TempData 不是最合适的解决方案。如果我是你,我会寻找其他解决方案。
否则,您真的需要调用 RedirectToAction(从另一个控制器调用操作)吗?还是您的操作在同一个控制器中?
如果我有一个控制器操作可以重定向到另一个操作,如下所示:
public ActionResult Index()
{
RedirectToAction("Redirected", "Auth", new { data = "test" });
}
public ActionResult Redirected(string data = "")
{
return View();
}
URL 栏中会有类似 "Redirected?data=test" 的内容,AFAIK 是正确的行为。有没有一种方法可以直接将变量传递给重定向的 ActionResult 而无需在客户端上进行更改?
我想将 "test" 直接传递给重定向的 ActionResult,而不更改 URL。我确定有一种简单的方法可以做到这一点,但它正在逃避我。
我知道我可以在我可以传递变量的函数之外创建一个静态变量,但这似乎不是一个合适的解决方案。
您可以使用 TempData
变量。
public ActionResult Index()
{
TempData["AfterRedirectVar"] = "Something";
RedirectToAction("Redirected", "Auth", new { data = "test" });
}
public ActionResult Redirected(string data = "")
{
string tempVar = TempData["AfterRedirectVar"] as string;
return View();
}
This link 可能会有帮助。
是,使用TempData。
public ActionResult Index()
{
TempData["data"] = "test";
RedirectToAction("Redirected", "Auth"});
}
public ActionResult Redirected()
{
var data = TempData["data"].ToString();
return View();
}
希望对您有所帮助:
在我看来,TempData 不是最合适的解决方案。如果我是你,我会寻找其他解决方案。
否则,您真的需要调用 RedirectToAction(从另一个控制器调用操作)吗?还是您的操作在同一个控制器中?