0

嗨,我正在尝试发布图像,但我必须遗漏一些东西,因为我得到的只是一个字符串作为回报。这是我的代码:

    @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。我做错了什么?

4

1 回答 1

1

您是否尝试过查看要发布到控制器的内容?打开开发者工具/FireBug 并预览。在 Chrome 中,您可能会看到类似于以下内容的内容:

------WebKitFormBoundaryWKyJnLI9EtN9Hqca
Content-Disposition: form-data; name="ProductAvatar"; filename="default.jpg"
Content-Type: image/jpeg

确保文件输入的名称参数与 HttpPostedFileBase 输入参数的名称相同。确保您没有其他同名输入。

最后,在 Debug 中运行您的项目。在您的操作上设置断点。转到立即窗口。闲逛。看看

 Request.Files

有什么对你有好处的;)

祝你好运 :)

于 2013-01-09T00:46:41.717 回答