为什么 ViewBag 是空的?
Why ViewBag is empty?
在我的 MVC 项目中,我有两个提交的表单,我想重定向到同一个 ThankYou 页面。
在 2 个表单的控制器上,我在 ViewBag 中保存了 ThankYou 页面的文本。
在控制器上,我这样设置 ViewBage:
if (result == "success")
{
ViewBag.ThankYouText = "We have received your Contact us request."
return RedirectToAction("Index", "ThankYou",ViewBag);
}
在 ThankYou 视图中我明白了:
<p>ViewBag.ThankYouText</p>
但我的“感谢”页面上总是什么也没有。
我是纯 MVC 的新手,所以我一定做错了什么,知道吗?
您不能将 ViewBag 值从一个控制器传递到另一个控制器。它应该用于将数据从控制器传递到仅查看。
如果你想在控制器之间传递数据,你可以使用 TempData。
如下更改您的控制器:
if (result == "success")
{
TempData["ThankYouText"] = "We have received your Contact us request."
return RedirectToAction("Index", "ThankYou");
}
改变你的观点如下:
<p>@TempData["ThankYouText"]</p>
像这样更改代码
TempData["ThankYouText"] = "We have received your Contact us request.";
return RedirectToAction("Index", "your controller");
在你的索引方法中
public ActionResult Index()
{
ViewBag.ThankYouText = TempData["ThankYouText"]; return View();
}
并在ViewBag.ThankYouText
之前使用@关键字
在我的 MVC 项目中,我有两个提交的表单,我想重定向到同一个 ThankYou 页面。
在 2 个表单的控制器上,我在 ViewBag 中保存了 ThankYou 页面的文本。
在控制器上,我这样设置 ViewBage:
if (result == "success")
{
ViewBag.ThankYouText = "We have received your Contact us request."
return RedirectToAction("Index", "ThankYou",ViewBag);
}
在 ThankYou 视图中我明白了:
<p>ViewBag.ThankYouText</p>
但我的“感谢”页面上总是什么也没有。
我是纯 MVC 的新手,所以我一定做错了什么,知道吗?
您不能将 ViewBag 值从一个控制器传递到另一个控制器。它应该用于将数据从控制器传递到仅查看。
如果你想在控制器之间传递数据,你可以使用 TempData。
如下更改您的控制器:
if (result == "success")
{
TempData["ThankYouText"] = "We have received your Contact us request."
return RedirectToAction("Index", "ThankYou");
}
改变你的观点如下:
<p>@TempData["ThankYouText"]</p>
像这样更改代码
TempData["ThankYouText"] = "We have received your Contact us request.";
return RedirectToAction("Index", "your controller");
在你的索引方法中
public ActionResult Index()
{
ViewBag.ThankYouText = TempData["ThankYouText"]; return View();
}
并在ViewBag.ThankYouText
之前使用@关键字