嗨,
我有一个包含列表的View类,此列表说明了用户上传的可用文件(使用html帮助器呈现).
为了在提交时维护这些数据,我在视图中添加了以下内容:
<%: Html.HiddenFor(model => model.ModelView.Files)%>
我希望mode.ModelView.Files列表将返回到提交时的操作,但事实并非如此?
是否有可能将列表作为隐藏字段?
更多信息:用户提交保存在服务上的几个文件,当保存时将其称为GUID,并将此列表发送回用户以呈现保存的图像.用户在表单中进行了一些更改并再次点击提交,当进入控制操作时,图像列表将为空,为什么?
最好的祝福
解决方法
Is it not possible to have a list as hiddenfield?
当然,这是不可能的.隐藏字段只占用一个字符串值:
<input type="hidden" id="foo" name="foo" value="foo bar" />
因此,如果您需要列表,则需要多个隐藏字段,用于列表中的每个项目.如果这些项是复杂对象,则需要为列表中每个项的每个属性设置一个隐藏字段.
或者更简单的解决方案是为此隐藏字段表示一些唯一标识符:
<input type="hidden" id="filesId" name="filesId" value="123" />
并且在您的控制器操作中,您将使用此唯一标识符从您最初获得它的任何位置重新获取您的集合.
另一种可能性是将你的模型持续到会话中(只是提到会话的完整性我的答案,但它不是我实际建议使用的东西).