Ich habe ein Ansichtsmodell, das wie so ein int StateID
Feld und ein string StateName
Feld hat:zeigen verschiedene Felder in EditorForModel vs. DisplayForModel Modi in MVC2
public class DepartmentViewModel : BaseViewModel, IModelWithId
{
// only show in edit mode
public int StateId { get; set; }
// only show in display mode
public string StateName { get; set; }
}
Ich habe eine Nur-Lese-Ansicht, die DisplayForModel
und Update-Ansicht verwendet das verwendet EditorForModel
. Ich möchte, dass die DisplayForModel
Ansicht die StateName
Eigenschaft zeigt, und die EditorForModel
Ansicht die StateID
Eigenschaft verwenden (ich rendere tatsächlich eine Dropdownliste basierend auf dieser).
Ich konnte nicht herausfinden, wie meine Viewmodel-Eigenschaften zu dekorieren, um dieses Verhalten zu erstellen.
Wie setzen Sie das benutzerdefinierte DataAnnotationsModelMetadataProvider? Vielen Dank. – UpTheCreek
@UpTheCreek - Vererbt von DataAnnotationsModelMetadataProvider. http://weblogs.asp.net/seanmcalinden/archive/2010/06/11/custom-asp-net-mvc-2-modelmetadataprovider-for-using-custom-view-model-attributes.aspx – CodeGrue
Danke für die Freigabe Ihrer Lösung. Es wäre jedoch nützlich, wenn Sie Details darüber angeben könnten, wohin das zweite Code-Snippet gehen soll (ich nehme an, wir müssen CreateMetadata überschreiben und dort einfügen?) Und auch, wie wir unseren benutzerdefinierten DataAnnotationsModelMetadataProvider registrieren, sobald er erstellt wurde. – mutex