0

2つのエディターテンプレートがあります。

UploadFiles.cshtml:

@model HttpPostedFileBase[]
@Html.EditorFor(m => Model, "UploadFile", new { multiple = true })

UploadFile.cshtml:

@model HttpPostedFileBase
@Html.TextBox("", Model, new { type = "file", multiple = Convert.ToBoolean(ViewBag.Multiple) ? "multiple" : "" })
<!-- Additional code here i don't wish to repeat in both controls -->

UploadFiles.cshtmlテンプレートが配列を受け入れてから、UploadFile.cshtmlテンプレートを呼び出し、ビューデータを介してmultiple=trueを渡す方法に注目してください。

私が抱えている問題は、私が言う場合です:

@Html.EditorFor(m => Model.Files, "UploadFiles")

何もレンダリングされません。

しかし、私が言うなら:

@Html.EditorFor(m => Model.File, "UploadFile")

正しくレンダリングされます。

誰かがこれをどのように達成できるかを教えてくれれば幸いです。

ありがとう

4

1 に答える 1

1

UploadFiles.cshtmlではModel、配列であるを、配列を受け取らないUploadFile.cshtmlに渡します。その行をforeachでラップするつもりでしたか?

foreach (var file in Model)
{
    @Html.EditorFor(x => file, "UploadFile", new { multiple = true })
}
于 2012-07-16T00:13:01.170 に答える