0

恐怕我对 MVC 完全陌生,对一般编程几乎一样陌生。

我一直在使用 MVC 制作问卷。每个用户在登录后都会收到一份从数据库中的某些数据生成的特定问卷。视图绑定到包含一堆信息和问题列表的模型。问题由编辑器模板处理,该模板包含许多与问题相关的信息,例如 ID、名称、响应或类型。这些问题中的一个或多个可能涉及执行一个或多个文件的文件上传。

我在 stackoverflow 上找到了这个:MVC3、多文件上传、模型绑定,看起来很有希望,但由于文件上传问题的数量可能会有所不同,我不知道如何将上传的文件与问题 ID 匹配。这里的方法似乎涉及使用上传的名称来匹配它们,但由于我不知道会有多少上传问题,每个问题都会在页面上动态生成和命名。

如果每个问题只允许上传一个文件,我设法让它工作,通过向问题添加一个 HttpPostedFileBase 属性,但我不知道如何允许任意数量的上传。

总而言之:有没有办法让 0+ 个文件上传实例,每个能够上传 1 个或多个文件,并且能够分辨哪些文件属于哪个上传问题?

此外,如果我想使用 AJAX 提交我的问卷,我是否必须使用单独的 jquery 插件(我见过提到的几个)并单独处理文件上传?

抱歉,如果以上没有意义,我对整个事情感到很困惑。我没有包含任何代码,因为我所拥有的一切都很复杂而且很长:(

非常感谢。

4

1 回答 1

0

我最近完成了一个非常相似的项目。我为 JQuery 使用了 Fine File Uploader。这照顾了上传的机制本身。但我认为您是在询问如何将文件与上传后的问题相关联。

如果我正确理解了您的问题,您可以通过为每个问题(我假设您已经拥有)分配一个 ID 并在会话变量中将每个上传的文件与其问题 ID 相关联来动态地完成所有这些操作。这个变量应该是一个合适的数据结构,比如一个列表。例如,每个列表项都可以是 UploadedQuestionFile 类型的对象(由您定义),具有 2 个字段:QuestionID 和 FilePath。当然,我会稍微简化一下场景以使其清楚。

对于第二个问题,是的,您应该使用控制器中定义的上传功能分别处理每个上传的文件。此函数应从请求中读取问题 ID 和文件,并将它们关联到会话变量中。每个文件都是单独处理的,因为它们一次上传一个。

这应该很容易满足您的要求。如果您需要进一步解释,请告诉我。

于 2013-08-16T15:44:20.797 回答