在MVC 5中上传图像时,asp.net-mvc – Request.Files.Count总是为0

前端之家收集整理的这篇文章主要介绍了在MVC 5中上传图像时,asp.net-mvc – Request.Files.Count总是为0前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个Post控件在一个模型与一些字符串字段和一个图像.完全相同的代码适用于MVC4,但在MVC 5中,Request.Files.Count始终为0

我的模型有byte [],而不是HttpPostedFileBase

我的看法:

@using (Html.BeginForm("Create","HotelManager",FormMethod.Post,new { enctype = "multipart/form-data",data_ajax = "false" }))
{
    @Html.AntiForgeryToken()
    @Html.TextBoxFor(model => model.Title,new { @class = "form-control" })
    @Html.TextAreaFor(model => model.Description,new { @class = "form-control",@rows = "7" })
    <input type="file" class="form-control filestyle">
    <input type="submit" value="Submit" class="btn btn-block" />
}

我已经尝试省略了data_ajax =“false”,但没有用.

我的邮政主管如下:

[HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create([Bind(Include = "Title,Description,Image")] Hotel hotel)
    {
        if (ModelState.IsValid)
        {
            // deal with the uploaded file
            if (Request.Files.Count > 0)
            {
                HttpPostedFileBase file = Request.Files[0];

                if (file != null && file.ContentLength > 0)
                {
                    // Code to process image,resize,etc goes here
                }
            }

        // Other code to add the hotel to db goes here
    }

在调试器中,我看到Request.Files.Count总是为零,我不知道为什么?
我已经从另一个MVC4项目中复制了视图和控制器代码,它的工作正常.

Key Value
Request POST /HotelManager/Create HTTP/1.1
Accept  text/html,application/xhtml+xml,*/*
Referer http://localhost:4976/HotelManager/Create
Accept-Language en-US,en;q=0.5
User-Agent  Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; ASU2JS; rv:11.0) like Gecko
Content-Type    multipart/form-data; boundary=---------------------------7de207070a24
Accept-Encoding gzip,deflate
Host    localhost:4976
Content-Length  946
DNT 1

在IE Developer窗口中,我看到窗体正文是空的.

解决方法

我浪费了很多时间,事实证明,我需要做的只是使用name属性
<input type="file" name="somename">

我的新项目中缺少name属性.

猜你在找的asp.Net相关文章