我有一个基本的HTML
表单,里面有<input type="file" multiple>
。对于每个选择的文件,我创建一个描述。
现在我想将它们绑定到PostedPhotoViewModel[] PostedPhotos;
:
public abstract class PostedPhotoViewModel
{
public string Description { get; set; }
public HttpPostedFileBase File { get; set; }
}
我不知道如何准备我的输入来做这样的事情。可能吗?或者我是否必须采取一些技巧来实现目标?
@Html.TextBoxFor(m => m.PostedPhotos, new { @name = "PostedPhotos", type = "file", multiple="multiple" })
我试图以这种方式强迫它,但没有工作:
myForm.submit(function(e) {
myInput.files = $.map(myInput.files, function(element) {
return {File: element, Description: "Test description"}
});
return true;
});
它是基本的ASP.NET MVC 5
项目。
答案 0 :(得分:1)
我会替换它:
@Html.TextBoxFor(m => m.PostedPhotos, new { @name = "PostedPhotos", type = "file", multiple="multiple" })
只有:
<input type="file" name="files" multiple="multiple" />
然后在控制器中执行以下操作:
[HttpPost]
public ActionResult Index(IEnumerable<HttpPostedFileBase> files)
我认为嵌套视图模型列表与文本框属性的绑定使得它比它复杂得多。