Par*_*shi 7 viewdata asp.net-mvc-3
我试图通过随机string 从我Controller的View.
这是我的Controller代码:
[HttpPost]
public ActionResult DisplayForm(UserView user)
{
//some data processing over here
ViewData["choice"] = "Apple";
return RedirectToAction("Next", "Account");
}
Run Code Online (Sandbox Code Playgroud)
现在我想将该数据值"Apple"传递给我的视图Next.cshtml,该视图创建如下:
//View: Next.cshtml
@{
ViewBag.Title = "Thanks for registering";
Layout = "~/Content/orangeflower/_layout.cshtml";
}
<p>Your favorite fruit is:</p>@ViewData["choice"]
Run Code Online (Sandbox Code Playgroud)
但是当项目运行时,我无法在浏览器中看到我的数据.
这是快照:
1)在调试时,控制器显示值:

2)浏览器视图未显示值"Apple"

3)进一步调试我的Next.cshtml视图:

为什么值没有正确传递给View.我Next和我的控制器DisplayForm都在同一个控制器内AccountController.cs,仍然没有显示值.
有人可以帮我解决这个问题吗?
Dar*_*rov 11
您没有渲染视图,而是重定向.如果你想传递一些信息,你需要在将视图添加到ViewData以下后返回此视图:
[HttpPost]
public ActionResult DisplayForm(UserView user)
{
//some data processing over here
ViewData["choice"] = "Apple";
return View();
}
Run Code Online (Sandbox Code Playgroud)
如果您想传递一条在重定向后仍然存在的消息,您可以使用TempData而不是ViewData.
[HttpPost]
public ActionResult DisplayForm(UserView user)
{
//some data processing over here
TempData["choice"] = "Apple";
return RedirectToAction("Next", "Account");
}
Run Code Online (Sandbox Code Playgroud)
然后在Next操作中,您可以从TempData获取数据并将其存储在ViewData中,以便视图可以读取它.
| 归档时间: |
|
| 查看次数: |
25297 次 |
| 最近记录: |