如何将模型和HttpPostedFileBase同时添加到控制器中?

时间:2014-07-09 05:43:10

标签: asp.net-mvc

我看起来有点在线,我看到的每个例子都解释了如何将IEnumerable<HttpPostedFileBase>引入控制器,或者如何获得模型,但不是两者。

我想要的是:

<form>
    <input type="text" name="Stored file name>
    <input type="file" multiple="multiple" name="files>
    <input type="submit">
</form>

带控制器

[ActionName("Index"), HttpPost]
public ActionResult IndexPost(Models.MyModel mdl, IEnumerable<HttpPostedFileBase> files)
{
    // Do some something with the data in mdl and files here
    return RedirectToAction("Index");
}

但是我试图实现这一点的每一种方式,它都会回来找不到无参数处理程序&#39;。如果我包含该模型,它的工作正常。

我错过了一些非常明显的东西吗?

1 个答案:

答案 0 :(得分:0)

我猜你无法找到Darin's this post。它与使用HttpPostedFileBase传递模型并不完全相同,但如果你理解这种行为,那么它就很容易做到。

见下面的例子。

查看

@model WebApplication2.Models.MyModel

@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    @Html.HiddenFor(m => m.Id)
    <input type="file" name="file" />
    <input type="submit" value="OK" />
}

行动方法

        [HttpPost]
        public ActionResult Index(MyModel model, HttpPostedFileBase file)
        {
            if (file != null)
            {
                //do your stuff here
            }
            return View();
        }