服务器验证mvc后保存输入类型文件状态

时间:2014-04-23 15:20:12

标签: html asp.net-mvc file-upload

我有html表单,其中包含一些文本框控件和<input type=file>控件,用于上传文件。所有控件都有服务器验证。想象一下下一种情况:我选择上传文件并输入一些文本框控件的数据(一些文本框我留空)。然后我点击提交按钮,我的表单发送到服务器操作。在服务器中进行验证检查后,我将重定向到相同的表单以进行纠错。所有文本框都保存状态并具有数据,但文件控制没有。

P.S。当我调试代码时,我在视图模型中看到上传的文件。我可以重新发送到HTML格式吗?我不会编写我的代码,因为我认为它是多余的。

1 个答案:

答案 0 :(得分:1)

您可以获取文件名(例如myfile.txt),但不能获取完整路径(例如/home/martin/myfile.txtC:/Users/martin/myfile.txt),因此您无法设置值服务器 - 或使用Javascript。这是出于安全原因的原因。隐私。

你能做什么呢?

  1. 使用Javascript或AJAX请求验证表单,如果失败,原始表单(&amp; values)不变(我建议这样做)。

  2. 第一次尝试保存文件内容,如果重试失败并且用户没有提供新文件,请使用保存的文件内容(这可能需要一些特殊编码,并且可能会留下孤立文件/数据库行如果用户没有进行第二次尝试而放弃了。我不推荐这样做。