Ich studiere derzeit objektorientierte Programmierung (OOP) in C# und kürzlich sah, dass Zusammensetzung aufgrund der Flexibilität gegenüber Vererbung bevorzugt ist. Wie auch immer, ich bin gerade auf Lager.Meine Klasse wird leer auf Formularpost in ASP.NET MVC
Ich habe 2 Klasse (Student and Assessment)
public class Student
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class SkillsAssessment
{
public readonly Student Student = new Student();
[Required]
public string Industry { get; set; }
[Required]
public string YearsInIndustry { get; set; }
}
ich ein Rasiermesser Ansicht StudentDetails.cshtml haben
@Html.TextBoxFor(x => x.Student.FirstName, htmlAttributes: new { @class = "form-control input-lg", @required = "required" })
@Html.TextBoxFor(x => x.Student.LastName, htmlAttributes: new { @class = "form-control input-lg", @required = "required" })
@Html.TextBoxFor(x => x.Industry, htmlAttributes: new { @class = "form-control input-lg", @required = "required" })
@Html.TextBoxFor(x => x.YearsInIndustry, htmlAttributes: new { @class = "form-control input-lg", @required = "required" })
Und in meinem Controller-
Public ActionResult(SkillsAssessment data){
//This is where the problem comes
//Because the Student Class inside my SkillsAssessment is always null
//And all I can get is the Industry and YearsInIndustry field
}
Ich hoffe, Sie können helfen Sie mir, herauszufinden, wie Sie das beheben können, und geben Sie mir ein klares Verständnis über meine Implementierung mit Composition.
Es muss eine Eigenschaft, kein Feld sein - 'public Student Student {get; einstellen; } '(Randnotiz: Entfernen Sie' @ erforderlich = "erforderlich" 'und verwenden Sie' @ Html.ValidationMessageFor (...) ') –
@StephenMuecke Hallo Sir, ich entschuldige mich, wenn dies eine doppelte Frage ist, können Sie mir bitte den Link senden von dem anderen? Auch deine Lösung für mein Problem funktioniert tatsächlich, obwohl ich nicht wirklich mit dem Thema verwechselt werde, dass ich die Komposition über die Vererbung gesehen habe. Ich dachte, ich mache die Komposition richtig. – jmaghuyop
Was meinst du mit _link des anderen_? (auf welches andere beziehen Sie sich?) –