除了我的视图模型参数之外,我不想让我的POST操作方法使用参数。但是,对于使用Telerik上传助手进行文件上传,似乎我不得不这样做。发布的值为IEnumerable<HttpPostedFileBase>
。有没有办法我可以将它绑定到模型而无需自定义模型绑定。
答案 0 :(得分:4)
我不喜欢使用参数 另外,我的POST动作方法 到我的视图模型参数。
我也不是。这就是我使用视图模型的原因:
public class MyViewModel
{
public IEnumerable<HttpPostedFileBase> Files { get; set; }
public string Foo { get; set; }
public string Bar { get; set; }
...
}
然后:
[HttpPost]
public ActionResult Upload(MyViewModel model)
{
if (!ModelState.IsValid)
{
return View(model);
}
if (model.Files != null)
{
foreach (var file in model.Files)
{
if (file != null && file.ContentLength > 0)
{
// process the uploaded file
}
}
}
...
}
答案 1 :(得分:1)
请记住,控件的名称(Upload()。Name(***))应该与model的属性相同。
public class MyViewModel
{
public IEnumerable<HttpPostedFileBase> ManyFiles { get; set; }
...
}
// ...
@Html.Kendo().Upload().Name("ManyFiles")
或
public class MyViewModel
{
public HttpPostedFileBase OneFile { get; set; }
...
}
// ...
@Html.Kendo().Upload().Name("OneFile").Multiple(false)