2016-10-31 3 views
0

Ich habe eine Combobox in der Hauptansicht und diese Combobox hat einen AJAX-Aufruf an den Server, der eine PartialView zurückgibt, die in der MainView gerendert werden soll.Asp.Net MVC, Bindung dynamisch gerendert Teilansicht

Die Mainview hat folgende VieModel:

public class CupomFiscalDetalhesViewModel 
{ 
    //Properties 
    public PlanoPagamentoViewModel PlanoPagamentoSelecionado { get; set; }  
} 

Die PartialView, hat die folgende Ansichtsmodell:

public class PlanoPagamentoViewModel 
{ 
    public int QuantidadeParcelas {get; set;} 
    public IPlanoPagamentosParcelas PlanoPagamentosParcelas { get; set; } 
} 

Die Schnittstelle von zwei anderen Viewmodels implementiert werden kann, in diesem Fall werde ich zeigen, welches ViewModel implementiert:

public class PlanoPagamentoCartaoViewModel : IPlanoPagamentosParcelas 
{ 
    public List<ParcelaViewModel> Parcelas { get; set; } 
} 

Sobald der Benutzer das ändert Wert der Combobox, lade ich dynamisch mit jQuery ajax eine der Teilansichten.

Ein Beispiel, wie ich versuche, in der PartialView zu binden:

@for (int i = 0; i < Model.QuantidadeParcelas; i++) 
{      
    @Html.EditorFor(model => model.PlanoPagamentosParcelas.Parcelas[i].DataVencimento, new { htmlAttributes = new { @class = "form-control col-md-offset-4" } }) 
} 

Wo Modell ist die Art der PlanoPagamentoViewModel

Wie kann ich die Teilansicht Eigenschaften der verschachtelten Eigenschaft binden von meine CupomFiscalDetalhesViewModel in der POST-Aktion?

+0

Sprechen Sie über '@model Model_Name' oben auf der .cshtml-Seite? –

+1

woher hast du diese QuantidadeParcelas bekommen? – pjobs

+0

@pjobs, QuantidadeParcelas stammt aus dem PlanoPagamentoViewModel (das Viewmodel der PartialView) – Maturano

Antwort

1

Von dem, was ich erhalte, denke ich, dass Sie den Namensraum, in dem sich Ihre Klasse befindet, durch @using namespace_name_where_PlanoPagamentoViewModel_class_is_located neben @model model_name einschließen müssen.

+0

I POST habe deine Idee verstanden, danke für den Helfer. Da asp.net MVC mit dem Convention-Namen arbeitet, erzeugte meine Teilansicht den Namen der Felder, die vom Hauptansichtsmodell nicht erkannt wurden. Daher musste ich den vollständigen Pfadnamen angeben, damit er funktionierte! – Maturano

Verwandte Themen