次のように、インデックスページに PartialView があります:-
@{ Html.RenderPartial("ImageUpload"); }
PartialView は次のようになります:-
@model MvcCommons.ViewModels.ImageModel
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.FileName)
</td>
<td>
@Html.DisplayFor(modelItem => item.Description)
</td>
</tr>
}
</table>
PartialView の上部にある宣言によると、ViewModels.ImageModel 内に入るはずであり、そのクラス内にコンストラクターがあります:-
public ImageModel()
{
XDocument imageMetaData = XDocument.Load(uploadsDir + @"/ImagesMetaData.xml");
var images = from image in imageMetaData.Descendants("image")
select new Image(image.Element("filename").Value,
image.Element("description").Value);
this.AddRange(images.ToList<Image>());
}
ただし、何らかの理由で、ImageUpload 部分ビューでデバッグすると、この ViewModel コンストラクターにリダイレクトされないため、PartialView 内のモデルが null になります。
ここで何か不足していますか?
実際にコンストラクターを通過させるにはどうすればよいですか? メインのインデックス ページ (PartialView をホストしている場所) でも @model を実行する必要がありますか?
あなたの助けと時間をありがとう