文件上传 – 是否可以在上传文件的asp.net webapi中进行模型绑定
发布时间:2020-12-16 00:11:38 所属栏目:asp.Net 来源:网络整理
导读:该模型: public class UploadFileModel{ public int Id { get; set; } public string FileName { get; set; } public HttpPostedFileBase File { get; set; }} 控制器: public void Post(UploadFileModel model){ // never arrives...} 我收到了一个错误
该模型:
public class UploadFileModel { public int Id { get; set; } public string FileName { get; set; } public HttpPostedFileBase File { get; set; } } 控制器: public void Post(UploadFileModel model) { // never arrives... } 我收到了一个错误
有没有办法解决? 解决方法
这不容易. Web API中的模型绑定与MVC根本不同,您必须编写一个MediaTypeFormatter,它将文件流读入您的模型,并另外绑定可能相当具有挑战性的原语.
最简单的解决方案是使用某种类型的MultipartStreamProvider从请求中获取文件流,并使用该提供程序使用FormData名称值集合的其他参数 示例 – http://www.asp.net/web-api/overview/working-with-http/sending-html-form-data,-part-2: public async Task<HttpResponseMessage> PostFormData() { if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } string root = HttpContext.Current.Server.MapPath("~/App_Data"); var provider = new MultipartFormDataStreamProvider(root); try { await Request.Content.ReadAsMultipartAsync(provider); // Show all the key-value pairs. foreach (var key in provider.FormData.AllKeys) { foreach (var val in provider.FormData.GetValues(key)) { Trace.WriteLine(string.Format("{0}: {1}",key,val)); } } return Request.CreateResponse(HttpStatusCode.OK); } catch (System.Exception e) { return Request.CreateErrorResponse(HttpStatusCode.InternalServerError,e); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – 在mvc的下拉列表中使用外键
- asp.net-core – 如何在.Net Core中将App.config更改为json
- asp.net – 具有多个声明的授权策略
- asp.net-mvc – 我的web.config中没有角色管理器部分定义
- asp.net-mvc – 尝试通过nginx / fastcgi使用eventsource进
- asp.net 禁用viewstate在web.config里
- 在asp.net中查看状态
- asp.net-mvc-3 – Mini Profiler不渲染脚本
- asp.net – 我可以使用一种模式来编辑MVC3应用程序中的下拉
- ASP.NET – 控制事件不在Repeater内部触发
推荐文章
站长推荐
- asp.net – 如何使用Ajax.BeginForm OnSuccess和
- asp.net-mvc – 在不显眼的验证过程中使用parseJ
- asp.net-mvc – 在ASP.net MVC单元测试中访问Mod
- 非锁定进程中的ASP.NET会话状态存储
- asp.net-mvc – 默认的AccountController示例何时
- asp.net-mvc – 如何在asp.net mvc3项目中开始使
- 打开排序时出现ASP.NET GridView CSS问题
- asp.net – 如何在转发器中绑定gridview?
- Pro ASP.NET Core MVC 2翻译计划:第一章
- 如何在ASP.NET WebForm中使用Ninject注入依赖项?
热点阅读