asp.net-mvc - 在 MVC Razor 中保留数据而不在请求之间使用 TempData

标签 asp.net-mvc asp.net-mvc-3 razor persistence tempdata

如何在 MVC Razor 中保留数据而不在请求之间使用 TempData?

我知道我们什么时候可以使用来自 this 的 TempData ,但不想使用 TempData,因为它会在机器上创建状态。

谢谢,安尼什

编辑:我想在允许用户对名称、年龄等字段进行排序的 View 页面中保留以前的排序方向。

修复:我使用 ViewBag 修复了它。先前的排序字段/方向使用 ViewBag 从 Controller 发送到 View,然后在下次单击时将其作为查询字符串传回。

好的修复:我处理了 .js 文件中的所有内容,例如检查,然后在 Controller 中设置上一个排序字段和上一个排序目录。

这就是我最后所做的。我使用 ViewBag 将以前的详细信息发送到 ViewPage,并根据当前用户操作在 .js 中进行验证,并将其以表单数据形式传回 Controller 。

最佳答案

在客户端页面中维护状态打破了无状态 HTTP 的概念。为什么要保持状态?如果您正在寻找将一些数据从 Controller 操作传递到相应 View 的解决方案,我建议您使用 ViewModel,在其中填充下拉列表的数据并将该 ViewModel 对象发送到强类型 View 。您将在那里获得您的数据。此外,如果您需要一些数据,您应该在每个请求中从您的 DataLayer(从表/或缓存等)中获取数据。
您可以在查询字符串中传递一个相关的 id 来获取相应的数据。

正如RTigger 提到的,您可以在 session 中存储一些数据。这将在所有页面上可用,直到该 session 的生命周期为止。

关于asp.net-mvc - 在 MVC Razor 中保留数据而不在请求之间使用 TempData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10199721/

相关文章:

asp.net-mvc - 模型绑定(bind)时查找 View 模型属性上的自定义属性

asp.net - 缓存最佳做法

c# - MVC3 自定义 View 引擎

c# - 为什么我的 DropDownListFor 不会在我发布时填充我的 id 属性?

syntax - Razor 在节中误读了脚本内的右大括号

c# - MVC 长时间运行 EF 存储过程调用

c# - REST 超媒体 URI 更改基于 Web API 中的上下文 (HATEOAS)

asp.net - url 内的双转义序列 : The request filtering module is configured to deny a request that contains a double escape sequence

javascript - 创建可在 Safari 中使用的书签链接

c# - 你如何在 ASP.NET MVC 中本地化日期