Görünümümde görüntülenen öğeler listem var. Bu listeye UI'den bir ekle düğmesiyle öğeleri manuel olarak ekleyebilmem gerekir. Yeni öğenin görüntülenmesini sağlamak için javascript ile kısmi bir görünüm yüklemem gerektiğini biliyorum. Benim Öğe bir TextBox ve Kodları doldurulan bir DropDownList, hem içerdiği içinTek bir kısmi birden çok nesne gerektirdiğinde, görünümlerimi koleksiyonuma dinamik olarak nasıl ekleyebilirim?
@{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>
}
Ancak, benim kısmi görünümü ViewModel çok ihtiyacı var? Sadece Dx'i değil, listeyi oluşturmak için uygun Kodların listesini de içermek mi?
public class DxSingleViewModel
{
public Dx Dx { get; set; }
public List<Code> Codes { get; set; }
}
Bu genel bir yaklaşım mı, yoksa üssü kapalı mıyım diye bir fikriniz yok.
tipiyle kısmi görünümü daktilo güzel ve basit bir çözüm gibi görünüyor. Ancak, bu yaklaşımın koleksiyon bağlama için doğru giriş adlarını oluşturacağından emin misiniz (örn. Patient.DxList [0] .DxIndex)? – mipe34
Evet, bu dizinleri oluşturacaktır, ancak dinamik olarak satır eklemek ve çıkarmak istediğinizde kendi indeksinizi kullanmalısınız. Cevabımı güncelleyeceğim. – Jan
Güzel. Bu Html.BeginCollectionItem yardımcılarının farkında değildim – mipe34