所以我有一个用户可以建立并发送电子邮件和附加文件的屏幕。当他们点击发送时,我想将他们带到一个屏幕,他们可以在发送之前查看电子邮件。 (此评论屏幕只读取隐藏输入中的所有数据)
我可以将所有数据传递到“审核”屏幕,但是当我单击“发送”并提交表单时,我将失去对上传文件的引用,而其他一切都很好。
我知道我可以将文件存储在TempData中并再次检索它们,但我想我可以在视图上执行此操作。
我在“审核”视图中尝试隐藏HttpPostedFileBase[] Files
int filePos = 0;
foreach (var n in Model.Files)
{
<input class="hidden" name="Files[@filePos].ContentLength" value="@Model.Files[filePos].ContentLength" />
<input class="hidden" name="Files[@filePos].ContentType"value="@Model.Files[filePos].ContentType" />
<input class="hidden" name="Files[@filePos].FileName" value="@Model.Files[filePos].FileName"/>
<input class="hidden" name="Files[@filePos].InputStream" value="@Model.Files[filePos].InputStream"/>
filePos++;
}
当我在帖子后面检查模型时,HttpPostedFileBase[] Files
有两个对象,但都是空的。我觉得InputStream
部分不允许这个工作,因为它本身就是一个对象。
是否有人知道如何使用此方法或更好地维护文件?
答案 0 :(得分:1)
您无法预设或更改输入文件元素。通过使用javascript更改输入文件元素来防止上传任何文件无效,例如
如果可以的话,任何人都可以这样做,并从本地驱动器上传任何文件。
您可以找到here的说明并未显示任何“设定值”功能。