Post View Hidden HttpPostedFileBase C#From View

时间:2018-03-22 13:47:20

标签: c# html asp.net-mvc file httppostedfilebase

所以我有一个用户可以建立并发送电子邮件和附加文件的屏幕。当他们点击发送时,我想将他们带到一个屏幕,他们可以在发送之前查看电子邮件。 (此评论屏幕只读取隐藏输入中的所有数据)

我可以将所有数据传递到“审核”屏幕,但是当我单击“发送”并提交表单时,我将失去对上传文件的引用,而其他一切都很好。

我知道我可以将文件存储在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部分不允许这个工作,因为它本身就是一个对象。

是否有人知道如何使用此方法或更好地维护文件?

1 个答案:

答案 0 :(得分:1)

您无法预设或更改输入文件元素。通过使用javascript更改输入文件元素来防止上传任何文件无效,例如

如果可以的话,任何人都可以这样做,并从本地驱动器上传任何文件。

您可以找到here的说明并未显示任何“设定值”功能。