Ich habe zwei Entitäten:MVC Required Property innerhalb Optional Property
public class ParentThing
{
[Key]
public int Id { get; set; }
[Required]
public ChildThing TheFirstThing { get; set; }
public ChildThing TheSecondThing { get; set; }
}
public class ChildThing
{
[Key]
public int Id { get; set; }
[Required]
public string Code { get; set; }
public string Name { get; set; }
}
und einen Blick Modell:
public class ParentViewModel
{
public string Message { get; set; }
public ParentThing ParentThing { get; set; }
}
und eine Ansicht:
@using (@Html.BeginForm())
{
<label>Code 1</label>
@Html.EditorFor(model => model.ParentThing.TheFirstThing.Code)
<label>Name 1</label>
@Html.EditorFor(model => model.ParentThing.TheFirstThing.Name)
<label>Code 2</label>
@Html.EditorFor(model => model.ParentThing.TheSecondThing.Code)
<label>Name 2</label>
@Html.EditorFor(model => model.ParentThing.TheSecondThing.Name)
<input type="submit" value="Save" />
}
In meinem Beitrag zurück ich hinzufügen das ParentThing in den Kontext und versucht, Änderungen zu speichern. Ich erhalte einen Überprüfungsfehler für die Code-Eigenschaft der TheSecondThing-Eigenschaft von dem ParentThing, wie es erforderlich ist.
Welche Alternativen gibt es zum Speichern einer optionalen Eigenschaft, die erforderliche Eigenschaften enthält?
Die Alternative besteht darin, die Abhängigkeit von Entitätsklassen in Ihren Ansichtsmodellen zu entfernen. Sie möchten Datenübertragungsobjekte (DTOs) verwenden. Diese http://stackoverflow.com/questions/5995140/models-viewmodel-dtos-in-mvc-3-application hilft Ihnen beim Einstieg. – Jasen