将 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 动态属性的值设为 null

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");