MVC UpdateModel, wenn die Namen nicht übereinstimmen

Nehmen wir an, Sie haben ein Modell, das ungefähr so ​​aussieht:

public class MyClass {
    public string Name { get; set; }
    public DateTime MyDate { get; set; }
}

Die von Visual Studio zur Verfügung gestellte Standardbearbeitungsvorlage ist ein einfaches Textfeld für dieMyDate Eigentum. Dies ist alles in Ordnung und gut, aber nehmen wir an, Sie müssen dies in die Komponenten Monat / Tag / Jahr aufteilen, und Ihr Formular sieht folgendermaßen aus:

<label for="MyDate">Date:</label>
<%= Html.TextBox("MyDate-Month", Model.MyDate.Month) %>
<%= Html.TextBox("MyDate-Day", Model.MyDate.Day) %>
<%= Html.TextBox("MyDate-Year", Model.MyDate.Year) %>

Wenn dies übermittelt wird, ein Anruf anUpdateModel wird nicht funktionieren, da es keine Definition für gibtMyDate-Month. Gibt es eine Möglichkeit, dem Projekt eine benutzerdefinierte Sammelmappe hinzuzufügen, um Situationen wie diese zu bewältigen, oder wenn die HTML-Eingaben anders benannt sind (aus welchen Gründen auch immer)?

Eine Problemumgehung, die ich gefunden habe, ist die Verwendung von JavaScript, um eine verborgene Eingabe in das Formular vor der Übermittlung einzufügen, die die Felder verkettet und ordnungsgemäß benannt ist, aber das fühlt sich falsch an.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage