我在我的控制器的Login操作方法中存储了一个名为login的动态属性中的值,我在Index视图中访问viewbag的值。我得到的值为null。为什么会这样。?
以下是我的代码,它位于控制器登录操作方法中。
ViewBag.Login = "false";
return RedirectToAction("Index");
这是我在索引视图(cshtml)中使用的代码。
@if (@ViewBag.Login != "")
在这里,我得到@ViewBag.Login
的值为null。即使我删除像这样的@符号
ViewBag.Login Still I get value as null.
请帮忙。 ViewBag应该在绑定到同一控制器的视图和操作方法中保持值。
答案 0 :(得分:1)
ViewBag
不会在http请求中保留。
你可以做到
public ActionResult Login()
{
/* Pass `Login` by QueryString */
return RedirectToAction("Index", new { Login = false });
}
public ActionResult Index(bool Login)
{
/* Read from QueryString, and pass the value to `ViewBag` */
ViewBag.Login = Login;
return View();
}
答案 1 :(得分:1)
ViewBag
赢得了RedirectToAction
。您可以使用TempData
,只能访问一次:
TempData["Login"] = "false";
return RedirectToAction("Index");