BasicInfoModel に関連付けられた partialView _BasicInfoPartView があります。このパーシャルビューには、次のような入力とドロップダウンリストが含まれています。
public class BasicInfoModel
{ public string Name { get; set; }
public string selectedRubric { get; set; }
public IEnumerable<SelectListItem> Rubrics { get; set; }
}
部分的な _BasicInfoPartView.cshtml
@model ProjectZeroWebSite.Models.PleGroupModel
@Html.ListBoxFor(m => m.selectedRubric, @Model.Rubrics })
@Html.TextBoxFor(m => m.Name )
このパーシャルビューは、任意のページの FORM で呼び出すことができます。ページモデルに BasicInfoModel を追加するだけです。
public class RandomPageModel
{
public basicInfoModel { get; set; }
public string info2{ get; set; }
...
public RandomPageModel()
{ this.basicInfoModel = new basicInfoModel ();}
}
RandomPage.cshtml
@using (Html.BeginForm())
{
@Html.Partial("_BasicInfoPartView ", @Model.BasicInfoModel)
@Html.TextBoxFor(m => m.info2)
...
<input type="submit" />
}
問題は、問題なくページにデータを入力できることです。しかし、モデルからコントローラーの情報を取得しようとすると、次のようになります。 RandomPageModel.info2 OK! RandomPageModel.BasicInfoModel が空です...
私はデータバインディングの概念を理解していないと思います:s小さなJS関数によってページをオーバーロードしたくなかったので、これを試してみました.フォームをコピーするという考えは好きではありません(コードメンテナンス)。
事前に感謝します。
カンティーノ。