asp.net-mvc – 绑定到Viewmodel的文件上传
|
我有一个表单,我上传多个文件,并有几个文本框和一些复选框与每个上传的文件相关联.
[HttpPost] public ActionResult Upload(IEnumerable<HttpPostedFileBase> fileUpload) 但是,我无法找到任何可以上传多个文件的示例,其中我的actionresult签名是这样的: [HttpPost] public ActionResult Upload(MyViewModel vm) 我想要发布这个视图模型的原因是因为我认为它比使用FormCollection变量更清晰,因为我希望每个文件都被上传,并且添加的数据及其相关的文本框将通过List< FileUploadPacket>组合在一起.这将是ViewModel的一部分 UPDATE My View模型如下: public class EmployeeVM
{
public int EmployeeID {get ;set;}
public string EmpName {get ;set;}
//Other properties
public List<FileUploadPacket> FileUploadPackets { get; set; }
}
FileUploadPacket类,其属性类型为HttpPostedFileBase public class FileUploadPacket
{
public int FileID {get ;set;}
public string UserEnteredDesc {get ;set;}
//some more other properties
public HttpPostedFileBase UpFile { get; set; }
}
我的view.aspx的代码片段如下 <%: Html.TextBoxFor(model => model.EmpName,new { maxLength = 50 })%>
Upload your files here:
<input type="file" id="UpFile" name="UpFile" value="ActionHandlerForForm" />
<%: Html.TextBoxFor(model => model.FileUploadPackets[0].UserEnteredDesc )%>
<input type="file" id="UpFile" name="UpFile" value="ActionHandlerForForm" />
<%: Html.TextBoxFor(model => model.FileUploadPackets[1].UserEnteredDesc )%>
正如您所看到的,我将所有其他特定于此上传文件的属性保存在自己的类中.因此,在我的表单中,员工可以输入他的姓名并上传他的文件,并为每个文件提供一些描述和其他详细信息.如果我移动公共HttpPostedFileBase UpFile {get;组;在EmployeeVM类的属性然后我将必须在数组中单独收集所有文件并手动将文件映射到其描述.有没有办法保持FileUploadPacket类本身的UpFile属性? 我正在使用aspx视图引擎. 请帮忙.谢谢你的时间… 解决方法GetHtml帮助程序不是mvc框架的一部分,您应该查找包含该帮助程序的第三方库.上传属于ViewModel的文件很简单.基本上就是这样的 定义视图模型 public class MyViewModel
{
public HttpPostedFileBase MyFile { get; set; }
}
在Views / Shared / EditorTemplates中,创建MyViewModel.cshtml <input type="file" id="MyFile" name="MyFile" /> 并查看,对应上传动作 @model MyViewModel
@using(Html.BeginForm("Upload","MyController",FormMethod.Post,new { enctype="multipart/form-data"})
{
@Html.EditorForModel()
<input type="submit" value="Upload" />
}
必需属性对于上传文件很重要. 就是这样,一旦表单提交,你应该在[HttpPost] action,vm.MyFile中看到上传的文件. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – Microsoft EDGE – 访问此资源所需的安全证书无
- ASP.NET MVC中特定于视图的模型?
- asp.net-mvc-4 – 将nopcommerce 2.8升级到3.10
- asp.net – 向其他人提供一个Web API转发请求的最佳方式
- asp.net – 使用“async”(即使它应该完成)作为MVC路由的一
- asp.net-mvc-routing – @ Url.Action获取?附加长度= 2
- 在预编译asp.net网站 – 是否重要?
- asp.net – 我可以使用Chrome DevTools在客户端查看会话状态
- asp.net-mvc – “安全感知”动作链接?
- 在IIS 7.5上运行的ASP.NET应用程序上强制Https
- asp.net – IIS 6.0和.Net 4的Default.aspx?
- asp.net – 在资源文件中使用HTML
- asp.net-mvc – 使用Knockout JS MVC服务器端模型
- asp.net-identity-2 – GenerateEmailConfirmati
- asp.net – JSON在IE7中未定义
- ASP.NET网站Windows窗体应用程序WCF服务:客户端
- ASP.NET状态管理在适当的情况下
- asp.net-mvc – 在asp.net mvc主页面的导航列表中
- asp.net-mvc – 为什么实体框架在更新父项时会插
- asp.net – MVC 4 Web API Action返回:类型vs H
