C# 重定向到操作并传递值?
如果我有一个控制器动作要重定向到另一个动作,如下所示:C# 重定向到操作并传递值?,c#,asp.net-mvc,asp.net-core-mvc-2.0,C#,Asp.net Mvc,Asp.net Core Mvc 2.0,如果我有一个控制器动作要重定向到另一个动作,如下所示: public ActionResult Index() { RedirectToAction("Redirected", "Auth", new { data = "test" }); } public ActionResult Redirected(string data = "") { return View(); } URL栏中会有类似“Redirected?data=test”的内容,AFAIK是正确的行为。有没
public ActionResult Index()
{
RedirectToAction("Redirected", "Auth", new { data = "test" });
}
public ActionResult Redirected(string data = "")
{
return View();
}
URL栏中会有类似“Redirected?data=test”的内容,AFAIK是正确的行为。有没有一种方法可以直接将变量传递给重定向的ActionResult,而无需对客户端进行更改?我希望在不更改URL的情况下直接通过重定向ActionResult的“测试”。我相信有一个简单的方法可以做到这一点,但我还是逃避了。
我知道我可以在可以传递变量的函数之外创建一个静态变量,但这似乎不是一个合适的解决方案。您可以使用
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();
}
可能会有帮助。您可以使用
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();
}
可能会有帮助。是的,请使用
是的,使用
我希望这能帮助您: 在我看来,TempData不是最合适的解决方案。如果我是你,我会寻找另一个解决办法
否则,您真的需要调用RedirectToAction(从另一个控制器调用操作)吗?或者,您的操作是否在同一控制器中?我希望这可以帮助您: 在我看来,TempData不是最合适的解决方案。如果我是你,我会寻找另一个解决办法
否则,您真的需要调用RedirectToAction(从另一个控制器调用操作)吗?或者您的操作是否在同一控制器中?可能重复@R.StackUser的可能重复,我看到您删除的注释:)您也可以使用服务器缓存。Google it“服务器缓存ASP.NET MVC”。祝你好运。@R.StackUser,我看到了你删除的评论:)你也可以使用服务器缓存。Google it“服务器缓存ASP.NET MVC”。祝你好运。如果满足一个条件,我需要返回一个由另一个ActionResult生成的视图,并向该ActionResult发送一个特定的参数。我希望Cookie/TempData不是必需的,但如果没有更好的替代方案,我可能不得不使用它们。如果满足条件,我需要返回由其他ActionResult生成的视图,并将特定参数发送到该ActionResult。我希望cookies/TempData不是必需的,但如果没有更好的选择,我可能不得不使用它们。