将 viewbag 动态属性的值设为 null
本文关键字:null viewbag 动态 属性 | 更新日期: 2023-09-27 18:34:18
我在控制器的登录操作方法中将一个名为 login 的动态属性中存储了一个值,并且我正在索引视图中访问视图包的值。我得到的值为空。为什么会这样。?
以下是我在控制器登录操作方法中的代码。
ViewBag.Login = "false";
return RedirectToAction("Index");
这是我在索引视图(CSHTML)中使用的代码。
@if (@ViewBag.Login != "")
在这里,我得到@ViewBag.Login
的值为空。即使我像这样删除@符号
ViewBag.Login Still I get value as null.
请帮忙。ViewBag 应在绑定到同一控制器的视图和操作方法中保留值。
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();
}
ViewBag
不会在RedirectToAction
中存活。您可以使用 TempData
,它只能访问一次:
TempData["Login"] = "false";
return RedirectToAction("Index");