Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 重定向到操作并传递值?_C#_Asp.net Mvc_Asp.net Core Mvc 2.0 - Fatal编程技术网

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不是必需的,但如果没有更好的选择,我可能不得不使用它们。