asp.net-mvc – 当参数为Model时,ASP.NET MVC发布文件模型绑定
发布时间:2020-12-15 18:45:35 所属栏目:asp.Net 来源:网络整理
导读:是否有任何方式可以发布文件( input type =“file”/)参与ASP.NET MVC中的模型绑定,而无需手动查看自定义模型绑定器中的请求上下文,并且不创建单独的动作方法只需要一个贴文件作为输入? 我会以为这样会奏效: class MyModel { public HttpPostedFileBase
是否有任何方式可以发布文件(< input type =“file”/>)参与ASP.NET MVC中的模型绑定,而无需手动查看自定义模型绑定器中的请求上下文,并且不创建单独的动作方法只需要一个贴文件作为输入?
我会以为这样会奏效: class MyModel { public HttpPostedFileBase MyFile { get; set; } public int? OtherProperty { get; set; } } <form enctype="multipart/form-data"> <input type="file" name="MyFile" /> <input type="text" name="OtherProperty" /> </form> public ActionResult Create(MyModel myModel) { ... } 但是鉴于上述情况,MyFile甚至不是绑定上下文中的值提供者值的一部分。 (当然是OtherProperty。)但是如果我这样做,它是有效的: public ActionResult Create(HttpPostedFileBase postedFile,...) { ... } 那么为什么当参数是一个模型时不会发生绑定,我该如何使它工作?我没有使用自定义模型绑定器的问题,但是如何在自定义模型绑定器中执行此操作,而不查看Request.Files [“MyFile”]? 为了一致性,清晰度和可测试性,我希望我的代码提供自动绑定模型上的所有属性,包括绑定到发布文件的属性,而无需手动检查请求上下文。我目前正在使用the approach Scott Hanselman wrote about测试模型绑定。 或者我以错误的方式去这个?你会如何解决这个问题?或者由于Request.Form和Request.Files之间的分离历史,这是不可能的设计吗? 解决方法
原来的原因是ValueProviderDictionary只看到Request.Form,RouteData和Request.QueryString来填充模型绑定上下文中的值提供者字典。所以没有办法让自定义模型绑定器允许发布的文件参与模型绑定,而不直接在请求上下文中检查文件集合。这是我发现完成同样的事情最接近的方式:
public ActionResult Create(MyModel myModel,HttpPostedFileBase myModelFile) { } 只要myModelFile实际上是文件输入表单字段的名称,则不需要任何自定义的东西。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 更改ASP.NET MVC筛选器中的视图
- asp.net-mvc-3 – 如何使razor成为现有项目中的默认视图引擎
- asp.net-mvc – 可以在ASP.NET MVC中本地化URL /路由吗?
- asp.net – 错误:类型存在于两个目录中
- 推荐用于ASP.NET性能优化和测试的书籍
- asp.net – 如何在WebGrid中的列标题使用DisplayName数据注
- asp.net – 我应该使用Orchard或umbraco还是别的什么?
- asp.net-mvc – 为什么Visual Studio崩溃打开ASPX与MVC RC1
- 如何在中心对齐asp.net标签文本
- asp.net-mvc – ASP.NET MVC如何实现返回上一页的链接?
推荐文章
站长推荐
- 在ASP.NET中如何知道当前路径是否是安全路径
- asp.net-mvc – 如何更好地控制DotNetOpenAuth如
- asp.net-mvc – 使用linq2sql在c#mvc中不显示所选
- wwwtl999999com17708846600Chinese exchangeto l
- asp.net-mvc – ACS安装,但MVC 4.0应用程序仍然重
- 自签名ASP.NET Web API 2 REST服务的令牌身份验证
- asp.net – 如何在aspx页面中显示pdf?
- asp.net-mvc – 控制台应用程序HttpClient发布到
- ASP.net角色和项目
- asp.net-mvc-3 – 在MVC Razor View中使用If语句
热点阅读