私はメインモデルと部分ビューを持っています。パーシャルビューのモデルは、値のない新しいモデルです。しかし、今では親モデルの1つの要素を部分ビューに渡したいと思います。それについてどうすればいいですか?親モデルの要素を部分ビューに渡す
親ビューと部分ビューは異なるプロパティを持つため、同じモデルを使用できません。
モデル:
public class Parent
{
.
.
public List<SelectListItem> TypeList { get; set; }
.
.
}
public class Partial1
{
public List<SelectListItem> TypeList1 { get; set; }
.
.
}
public class Partial2
{
public List<SelectListItem> TypeList2 { get; set; }
.
.
}
親ビュー:
@model Models.Parent
@Html.Partial("_Partial1", new Partial1())
@Html.Partial("_Partial2", new Partial2())
私はViewDataDictionary
を使用して部分ビューに渡して、それを使用することができます実現が、私はそれを割り当てることができれば、私は思っていました私の部分的なビューモデルを直接。このようなことをすることはできますか?
@Html.Partial("_Partial1", new Partial1(new{TypeList1 =Model.TypeList}))
上記のコードは、Partial1に1つの引数を取るコンストラクタが含まれていないというコンパイル時エラーが発生します。 EDIT 1
:
は、クリス・プラットの答えによると、私はこれは、コンパイルを解決error.Butこれは今パーシャルビューで実行時エラーの原因となっている
@Html.Partial("_Partial1", new Partial1{TypeList1 =Model.TypeList})
に私のコードを修正1.
Partial1ビュー:
@model Models.Partial1
@Html.DropDownListFor(model => model.Type, Model.TypeList1, new { @class = "form-control" })
は何のViがありません」というエラーがスローされます'Type'キーを持つ 'IEnumerable'型のewData項目。 "
なぜPartial1に2つのListプロパティがないのでしょうか? –
adiga
はい、うまくいくはずです。実際の問題は何ですか? –
@ChrisPratt Partial1に1つの引数を取るコンストラクタが含まれていないというコンパイル時エラーが発生しました。 – TheFallenOne