c# - 对于基本 View 模型属性,HttpPostedFileBase 在 POST 上为 0 字节

标签 c# asp.net-mvc httppostedfilebase

我已正确发布图像并绑定(bind)到我的 View 模型上的 HttpPostedFileBase 属性,但是当我将相同的属性放在 View 模型的基类中时,它不会模型绑定(bind)字节。它仍然显示图像名称,但不显示内容流。

我已经测试了我能想到的一切。请帮忙!

这些图片讲述了整个故事: enter image description here enter image description here enter image description here enter image description here enter image description here

提前致谢。如果有任何不清楚的地方,请告诉我。

更新

我认为这是一个合法的错误。在发布到 SO 之前,我尝试了以下所有建议(截至 1/26)。我也试过: 1. 将基属性创建为虚拟属性并在子类中覆盖它 2. 在子类中创建一个仅获取/设置基本属性的新属性

我的解决方案远非优雅,是在子类上添加一个“临时”属性,并在 MVC 操作方法中首先为它设置基本属性。我希望出现一个真正的解决方案,我可以恢复这个问题并进行适当的修复。

最佳答案

如果是我,我会为模型类创建一个 v.simple 自定义 Binder ,然后用手摇动它。这样做可能比尝试揭开 DefaultModelBinder 的弱点更容易(并且对于 future 的维护更明显)。此外,这意味着您不必(不必要地)污染您的模型结构/ Controller 操作/单元测试。

这里有一篇关于如何基于默认模型 Binder 创建 Binder 的好文章:http://www.codeproject.com/Articles/605595/ASP-NET-MVC-Custom-Model-Binder .

HTH

关于c# - 对于基本 View 模型属性,HttpPostedFileBase 在 POST 上为 0 字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28139082/

相关文章:

c# - 如何获得本地 WinNT 组的所有成员?

c# - 应用程序启动检查,我应该在 MVVM 模式中的什么地方执行它们?

c# - Entity Framework +验证注解

asp.net-mvc - 如何将 httppostedfilebase 转换为字符串数组

c# - 无法将 HttpPostedFileBase 保存到 session 变量并使用两次

asp.net-mvc - MVC - 如果图像未在 HTTP post 中重新上传,则不保存空图像数据(来自 SportsStore 示例)

c# - 寻找一种更优雅的方法来检查可空值类型

c# - 智能数据库搜索

c# - 找不到 ASP.NET Web API 路由 Controller

asp.net-mvc - 使用 Ninject.Web.Mvc 2.0 和 ASP.NET MVC 1.0 时出现错误 "More than one matching bindings are available"