MVC5 Razor从视图输入图像到控制器

时间:2016-10-27 12:37:17

标签: asp.net-mvc razor

在我的MVC应用程序中,我尝试将多个图像插入添加到我的ViewModel字段的视图中。所以我会用一个常用按钮给我的控制器打电话。

@using (Html.BeginForm())
{
    <form action="" method="post" enctype="multipart/form-data">                                  
     <div>
      <input id="fileupload" type="file" multiple="multiple" name="files" />
     </div>
    </form>
     <div>
       .... some textbox etc. (InsertViewModel)
     </div>
    <div class="form-group">
     <div class="col-md-offset-8 col-md-10">
       <input type="submit" value="Create" class="btn btn-primary" />
     </div>
    </div>
}

我的控制器看起来:

 [HttpPost]
public async Task<ActionResult> Insert(InsertViewModel model, IEnumerable<HttpPostedFileBase> files)
 { ..... }

但总是我得到我的文件对象0的数量。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

请在表格和所有文本框中添加提交按钮。 然后它工作正常。 代码就在视图中

<form action="" method="post" enctype="multipart/form-data">
<div>
    <input id="fileupload" type="file" multiple="multiple" name="files" />
</div>
<div>
    <input id="name" type="text"  name="name" />
</div>
<div>
    <input id="address" type="text" name="address" />
</div>
<div class="form-group">
    <div class="col-md-offset-8 col-md-10">
        <input type="submit" value="Create" class="btn btn-primary" />
    </div>
</div>

  你好

我的控制器看起来像

 [HttpPost]
    public ActionResult Index(IEnumerable<HttpPostedFileBase> files, Demo obj)
    {
        return View();
    }

MultipleUploadFileBinded

ClassObjectBinded

  

如果您在单个视图中需要两个表单,您还可以使用Request.Files发送上传文件并接收到控制器

 if (Request.Files.Count > 0)//// Is image is uplaod by browse button
 {
               foreach(var fl in Request.Files)
               {
                    var inputStream = Request.Files[0].InputStream;
               }

  }

喜欢上面你可以得到文件流等等。