【发布时间】:2011-08-07 02:40:15
【问题描述】:
我刚刚开始学习 ASP.NET MVC,我想知道如何在对控制器操作方法的后续请求之间保留模型对象?
例如说我正在创建一个联系人列表网络应用程序。用户可以在其列表中创建、更新、重命名和删除联系人。但是,我也希望用户能够上传从其他程序导出的联系人列表。然而,我不想只是在上传的文件中自动添加所有联系人,我想给用户一个辅助表单,他们可以在其中选择哪些上传的联系人应该实际添加到他们的列表中。
首先我有一个ContactController.Upload() 方法,它显示了一个上传表单。这将提交给ContactController.Upload(HttpPostedFileBase file),后者读取发布到一组联系人模型对象中的文件。然后我想显示列表中所有联系人姓名的列表,并允许用户选择那些应该添加到他们的联系人列表中的人。这可能是一个需要拆分为多个页面的长列表,并且我可能还希望允许用户在将联系人实际添加到他们的联系人列表之前编辑他们的详细信息。
在用户上传文件和最终提交所需的特定联系人之间,我应该将模型对象保存在哪里?我宁愿不立即将所有上传的联系人加载到后端数据库中,因为用户最终可能只选择少数几个来实际添加。然后其余的将需要删除。此外,我还必须考虑用户上传文件但从未真正完成上传的情况。
据我了解,控制器的实例只持续一个请求。那么我应该在我的联系人控制器上创建一个包含所有最新上传的联系人模型对象集合的静态属性吗?然后有一些进程定期检查这些集合的年龄并清除任何超过某个指定到期时间的集合?
【问题讨论】:
标签: asp.net-mvc