作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
一段时间以来,我一直在尝试找出解决方案,但无济于事。我有的是一个表格。我将 ASP.NET MVC4 与 jQuery Mobile 一起使用。用户首先被定向到以下屏幕:
在这里,他们选择一个胶囊并点击提交。 他们选择的 capsule 有一个我想持久化到下一页的主键值。
一旦他们点击提交,他们将被带到:
在这里,他们将填写表格并单击“创建”。您在此屏幕截图中看到的填充物列表基于在上一个屏幕上选择的胶囊。因此,根据所选的胶囊,上面的填充物列表可能会有所不同。如何保留在上一个屏幕上选择的 Capsule 主键值并将其持久化到下一个屏幕(完全不同的 View )?我知道我不能使用 ViewBag,因为 ViewBag 仅在单个 View 的范围内。本质上,我要的是上面表格上的数据,以及上一个 View 中选择的胶囊的主键。
最佳答案
您需要将值从 View1 发回服务器,然后通过 Controller 操作方法将其传回 View2:以下是显示在服务器上发生的代码片段:
//Serve the view when the URL is requested
public ActionResult ViewAllItems()
{
return View();
}
//Handle the posted form from the ViewAllItems page
[HttpPost]
public ActionResult ViewAllItems(int selectedItemId)
{
RedirectToAction("ViewItemDetail", new { id = selectedItemId });
}
public ViewResult ViewItemDetail(int id)
{
var item = repo.GetItem(id);
return View(item);
}
这里,带有 Controller Action 方法 ViewAllItems 的方法接收发布的值并重定向到 ViewItemDetail 方法,然后该方法加载项目数据并将其传递给 View 。因此, View 将被传递 id(连同完整的项目)。
这是一般的 MVC 模式,其中值向上传递到 Controller 操作方法,然后再中继回 View 。
关于c# - 如何在 ASP.NET MVC 4 中的两个完全不同的 View 之间保留数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14993783/
我是一名优秀的程序员,十分优秀!