将图像从视图上传到控制器mvc

时间:2018-04-21 03:11:37

标签: asp.net-mvc controller

美好的一天,

我正在尝试从我的视图上传图片

@using (Html.BeginForm("CrearCurso", "ProfesorCurso", null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
   <div class="form-group">
    <label>Upload Image</label>
    <div class="input-group">
        <span class="input-group-btn">
            <span class="btn btn-default btn-file">
                Browse… <input type="file" id="imgInp">
            </span>
        </span>
        <input type="text" class="form-control" readonly>
    </div>
    <img id='img-upload'/>
</div>
}

我在mvc中有这个控制器

  [HttpPost]
    public ActionResult CrearCurso(CursoViewModel CursoViewModel, HttpPostedFileBase imgInp)
    {

        return View();
    }

然而,当我检查HttpPsotedFileBase时,它是空的。这有什么不对?感谢

1 个答案:

答案 0 :(得分:2)

表单回发其成功表单控件的名称/值对。您的文件输入没有name属性。将其更改为

<input type="file" name="imgInp">

但是,最好强烈绑定到您的模型,因此添加

public HttpPostedFileBase ImgInp { get; set; }

属性到您的视图模型并使用

@Html.TextBoxFor(m => m.ImgInp, new { type = "file" })

还允许您在需要时将验证属性添加到文件输入