Ich habe View-Modell, das ein anderes Kindmodell hat, um die Teilansicht (unten) zu rendern.MVC4 - Teilansicht Modellbindung während Submit
public class ExamResultsFormViewModel
{
public PreliminaryInformationViewModel PreliminaryInformation { get; set; }
public string MemberID { get; set; }
public string MemberName { get; set; }
public int PatientID { get; set; }
public string ConfirmationID { get; set; }
public bool IsEditable { get; set; }
#region Select Lists
public SelectList ProviderOptions { get; set; }
#endregion
}
public class PreliminaryInformationViewModel
{
public string ProviderName { get; set; }
public string ProviderID { get; set; }
public string ServiceLocation { get; set; }
}
Dieses PreliminaryInformationViewModel View-Modell als Kind Modelle in einem anderen Ansicht Modell auch auf verschiedenen Seiten aktualisiert kann, da diese vorläufige Informationen verwendet werden.
Also habe ich diese vorläufige Informationen als separate Teil erstellt und auf anderen Seiten enthalten.
@{Html.RenderPartial("_PreliminaryInformation", Model.PreliminaryInformation);}
Innerhalb des Teils
@model Web.Models.Preliminary.PreliminaryInformationViewModel
<div>
@Html.TextBoxFor(x => x.DateOfService })
</div>
Aber das Problem während sie dieses vorläufigen Modell vorlegen ist immer null aus dem Grunde Attribut HTML Namen immer als
gemacht wird, aber wenn ich pass das Elternmodell zum Teil wie unten.
@model Web.Models.Exam.ExamResultsFormViewModel
<div>
@Html.TextBoxFor(x => x.PreliminaryInformation.DateOfService })
</div>
nun das HTML-Element erzeugt als
<input type = 'text' name='PreliminaryInformation.DateOfService.DateOfService' id='PreliminaryInformation.DateOfService'>
und bindet es richtig während der einreichen.
Ich verstehe, dass MVC den Wert des Elements basierend auf dem Wert des Namensattributs bindet, aber die zweite Implementierung würde mich brauchen, um eine mehrfache partielle für jede Seite zu erstellen, die ich nicht mag.
Bis jetzt konnte ich keine Lösung finden, um mit der ersten Implementierung zu arbeiten, gibt es so, wie ich vorläufigen Informationsmodell Wert binden kann, während mit der ersten Implementierung zu übermitteln.
Okay mit EditerFor löst das Bindungsproblem, aber es ersetzt auch alle Klassen und Styling, die ich in der Ansicht angewendet habe. ' ' – Sathish
verschieben Sie Ihre Teilansicht zu Views \ Shared \ EditorTemplates, der Aufruf zu 'Html.EditorFor (.. .) 'sollte automatisch diese Ansicht für Ihre Editor-Vorlage basierend auf dem Typ auswählen, den Sie als Modell übergeben – Moho
Danke für die Antwort Moho. Ich war in der Lage, partiell und Elemente Wert binden sind während des Einreichen mit EditorFor, aber Rendern mit EditorFor fügt einige Editor-Klassen Divs und Elemente und entfernt diejenigen, die tatsächlich auf der Ansicht platziert wurde Gibt es eine Möglichkeit, die wir verhindern können Hinzufügen dieser Editor-Klassen zu den Elementen im Teil. – Sathish