【问题标题】:sending IEnumerable<HttpPostedFileBase> from View从视图发送 IEnumerable<HttpPostedFileBase>
【发布时间】:2017-07-27 11:12:39
【问题描述】:

我正在向 Action 发送包含 IEnumerable&lt;HttpPostedFileBase&gt; 的图像

以下是我的模型

public class M
{
    public IEnumerable<HttpPostedFileBase> images { get; set; }
}

行动是

    [HttpPost
public async Task<ActionResult> ABC(CODE.M model)
{
    ...
}

我的文件上传控件是三个。像这样

@using (Html.BeginForm(new { enctype = "multipart/form-data" })) 
{
    Main <input type="file" id="image1" name="images" />
    Image 2  <input type="file" id="image2" name="images"/>
    Image 3 <input type="file" id="image3" name="images" />
}

在提琴手上显示所有图像都已发布,但在动作中IEnumerable&lt;HttpPostedFile&gt; 显示计数为 0

在提琴手上所有三个文件上传元素都显示images作为他们的名字

反正我也试过这样用

Main <input type="file" id="image1" name="images[0]" />
...
...

但显然它必须并且在发布时显示null 的操作

我的问题是我应该如何命名我的文件上传元素?

以前有人遇到过这个吗?

【问题讨论】:

  • 您显示的代码可以正常工作。这是正常提交​​还是使用 ajax?
  • @StephenMuecke 你有代码使用 bitbucket 它不是 ajax 我在你拥有的代码中对 Post 操作进行了更改
  • 确保您的表单元素正在使用 action="Post"
  • 还没有机会经历那个:)
  • 您的BeginForm 重载正在添加 enctype 作为路由值,而不是 html 属性

标签: c# html .net asp.net-mvc file-upload


【解决方案1】:

代替:

    public class M{  public IEnumerable<HttpPostedFileBase> images { get; set; }}

使用这个:

    public class M{  public HttpPostedFileBase[] images { get; set; }}

【讨论】:

    猜你喜欢
    • 2020-01-06
    • 1970-01-01
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多