Asp.net mvc MVC文件上载保存所选文件
我有一个带有文件上传控制的表单,它可以正常工作。但是,如果页面上出现其他无效字段,我很难确定在单击提交按钮并从控制器返回模型后如何“保存”所选文件? 每次页面上出现错误时,用户都必须再次浏览该文件。调用控制器上的POST后保存选择的最佳做法是什么Asp.net mvc MVC文件上载保存所选文件,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我有一个带有文件上传控制的表单,它可以正常工作。但是,如果页面上出现其他无效字段,我很难确定在单击提交按钮并从控制器返回模型后如何“保存”所选文件? 每次页面上出现错误时,用户都必须再次浏览该文件。调用控制器上的POST后保存选择的最佳做法是什么 //VIEW @using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" })) { <input id="inputbo
//VIEW
@using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input id="inputbox" type="file" name="PageUpload" />
@Html.TextBoxFor(model => model.otherField1)
@Html.TextBoxFor(model => model.otherField2)
}
//CONTROLLER
[HttpPost]
public ActionResult Create(MyViewModel view)
{
try
{ ...
if (ModelState.IsValid)
{
//it is valid save
return RedirectToAction("Action", "Controller", new { id = view.ModelID });
}
}
catch(Exception e){}
return View(view);
}
//查看
@使用(Html.BeginForm(null,null,FormMethod.Post,new{enctype=“multipart/formdata”}))
{
@Html.TextBoxFor(model=>model.otherField1)
@Html.TextBoxFor(model=>model.otherField2)
}
//控制器
[HttpPost]
公共操作结果创建(MyViewModel视图)
{
尝试
{ ...
if(ModelState.IsValid)
{
//它是有效的保存
返回RedirectToAction(“操作”,“控制器”,新的{id=view.ModelID});
}
}
捕获(例外e){}
返回视图(视图);
}
返回视图(View)后,我会正确绑定所有其他字段,但不会绑定输入控件。用户需要重新选择文件的原因是安全措施。您无法设置文件输入的值(如果可以,恶意网站可能会包含数百个带有“C:\password.doc”等的隐藏文件输入,并试图在用户不知道的情况下下载敏感文件) 如果模型无效,则需要在返回视图之前保存文件。在本例中,我使用的视图模型包含一个对象,该对象包含文件显示名称和路径的属性。基本前提是
路径的隐藏输入。A.
“删除”按钮可与此关联,以防用户更改
他们想选择一个不同的文件(使用ajax删除)
(临时文件)
用户需要重新选择文件的原因是安全措施。您无法设置文件输入的值(如果可以,恶意网站可能会包含数百个带有“C:\password.doc”等的隐藏文件输入,并试图在用户不知道的情况下下载敏感文件) 如果模型无效,则需要在返回视图之前保存文件。在本例中,我使用的视图模型包含一个对象,该对象包含文件显示名称和路径的属性。基本前提是
路径的隐藏输入。A.
“删除”按钮可与此关联,以防用户更改
他们想选择一个不同的文件(使用ajax删除)
(临时文件)
用户需要重新选择文件的原因是安全措施。您无法设置文件输入的值(如果可以,恶意网站可能会包含数百个带有“C:\password.doc”等的隐藏文件输入,并试图在用户不知道的情况下下载敏感文件) 如果模型无效,则需要在返回视图之前保存文件。在本例中,我使用的视图模型包含一个对象,该对象包含文件显示名称和路径的属性。基本前提是
路径的隐藏输入。A.
“删除”按钮可与此关联,以防用户更改
他们想选择一个不同的文件(使用ajax删除)
(临时文件)
用户需要重新选择文件的原因是安全措施。您无法设置文件输入的值(如果可以,恶意网站可能会包含数百个带有“C:\password.doc”等的隐藏文件输入,并试图在用户不知道的情况下下载敏感文件) 如果模型无效,则需要在返回视图之前保存文件。在本例中,我使用的视图模型包含一个对象,该对象包含文件显示名称和路径的属性。基本前提是
路径的隐藏输入。A.
“删除”按钮可与此关联,以防用户更改
他们想选择一个不同的文件(使用ajax删除)
(临时文件)
我担心这是由于安全原因,它不会工作。然而,您的解决方案似乎是一个很好的方法。谢谢@stephen mueckeI担心这是因为secu