私の見解に表示されている項目のリストがあります。私は手動で追加ボタンでUIからこのリストに項目を追加できるようにする必要があります。私は新しい項目を表示させるためにjavascriptで部分的なビューをロードする必要があることを知っています。私のアイテムは、テキストボックスとコードが移入されDropDownListコントロール、両方が含まれているため複数のオブジェクトを1つの部分的に必要とする場合、ビューからアイテムを動的に追加する方法はありますか?
@{var count = 0;}
@foreach (var dx in Model.Patient.DxList)
{
<div class="form-field">
<label>@(++count)</label>
@Html.HiddenFor(d => dx.DxIndex)
@Html.TextBoxFor(d => dx.Dx, new { @class = "small" })
<span class="description">@((dx.DxRef != null) ? dx.DxRef.Title : "")</span>
@Html.DropDownListFor(d=> dx.Indicator, new SelectList(Model.Codes, "Value", "Description", dx.Indicator), "Please select", new { @class = "" })
</div>
}
しかし、私の部分図は、ViewModelにも必要なのですか? Dxだけでなく、リストを作成するための適切なコードのリストを含めるには?
public class DxSingleViewModel
{
public Dx Dx { get; set; }
public List<Code> Codes { get; set; }
}
これが一般的なアプローチであるのか、私がベースから外れているのかわかりません。
のタイプの部分図を入力素敵でシンプルなソリューションのように見えます。しかし、この方法でコレクションバインディングの正しい入力名が得られることを確かめてください(例:Patient.DxList [0] .DxIndex)? – mipe34
はい、インデックスをレンダリングしますが、行を動的に追加および削除する場合は、独自のインデックスを使用する必要があります。私は私の答えを更新します。 – Jan
ニース。私はそのHtml.BeginCollectionItemヘルパーを認識していませんでした – mipe34