您好我正在尝试发布图片,但我必须遗漏一些东西,因为我得到的只是一个字符串作为回报。这是我的代码:
@using( Html.BeginForm("Create", "ProductManager", FormMethod.Post,new{enctype="multipart/form-data"})){
<input type="file" class="text-box single-line" id="ProductImagePath" name="ProductAvatar" />
}
[HttpPost]
public ActionResult Create( FormCollection collection)
{
var imagePosted = collection["ProductAvatar"];
}
imagePosted只返回null。我做错了什么?
答案 0 :(得分:1)
您是否尝试过查看您向控制器发布的内容?打开开发人员工具/ FireBug并预览。在Chrome中,您可以看到类似于以下内容的内容:
------WebKitFormBoundaryWKyJnLI9EtN9Hqca
Content-Disposition: form-data; name="ProductAvatar"; filename="default.jpg"
Content-Type: image/jpeg
确保文件输入的name参数与HttpPostedFileBase输入参数的名称相同。确保您没有其他具有相同名称的输入。
最后,在Debug中运行您的项目。在你的行动上设一个断点。转到立即窗口。闲逛。看看
Request.Files
对你有好处;)
祝你好运:)