2016-04-08 2 views
0

ich zwei Klassen haben, zum Beispiel:Erforderliche Felder in einem Assoziationsmodell ist die Anzeige nicht wie erforderlich

public class Person 
{ 
    [Required] 
    public string Name { get; set; } 

    public Address HomeAddress { get; set; } 
} 

public class Address 
{ 
    [Required] 
    public string StreetName { get; set; } 

    public int Number { get; set; } 
} 

Wenn ich das Formular zu veröffentlichen, nur in der „Person.Name“ -Attribut erscheint die Meldung „Der Name Feld ist erforderlich. "

Warum erscheint es nicht im Attribut "HomeAddress.StreetName"?

@model SqlExpress.Models.Person 

<form asp-action="Create"> 
    <input asp-for="Name" /> 
    <input asp-for="HomeAddress.StreetName" /> 
    ... 
+0

wenn Sie * das Formular * senden? meinst du, wenn du den create button drückst, ist die einzige Bestätigung, die erscheint für die 'Name' Eigenschaft, wenn du sowohl die 'Name' und' StreetName' Eigenschaften leer lässt? –

+0

@BviLLe_Kid, Ja, das stimmt. – Beetlejuice

+0

können Sie Ihre * Create * -Ansicht posten? –

Antwort

0

Es funktioniert ziemlich gut mit Razor View Engine. Haben Sie vergessen, das Validierungsnachrichtenfeld ähnlich dem unten genannten hinzuzufügen?

@Html.ValidationMessageFor(model => model.HomeAddress.StreetName) 
+0

Sie haben Recht. Ich habe nur Daten-valmsg-for = "StreetName" verwendet und das richtige ist data-valmsg-for = "HomeAddress.StreetName" – Beetlejuice

Verwandte Themen