j'ai les entités suivantes:ASP.NET MVC - Modèle personnalisé Binder pour les champs d'identification
public class Category
{
public virtual int CategoryID { get; set; }
[Required(ErrorMessage = "Section is required")]
public virtual Section Section { get; set; }
[Required(ErrorMessage = "Category Name is required")]
public virtual string CategoryName { get; set; }
}
public class Section
{
public virtual int SectionID { get; set; }
public virtual string SectionName { get; set; }
}
maintenant à mon avis Ajouter une catégorie j'ai une zone de texte pour entrer dans le SectionID par exemple:
<%= Html.TextBoxFor(m => m.Section.SectionID) %>
Je souhaite créer un classeur de modèle personnalisé avec la logique suivante:
Si la clé de modèle se termine par ID et a une valeur (une valeur a été insérée dans la zone de texte), définissez l'objet parent (Section dans cet exemple)) à Section.GetById (valeur entrée) autrement définir l'objet parent à null.
J'apprécierais vraiment l'aide ici car cela m'a déconcerté pendant un moment. Merci
si vous travaillez encore sur ceci, dans l'instruction 'if' vous avez' value.AttemptedValue == "" 'et ensuite sur la ligne suivante vous avez' value.AttemptedValue! = "" ', Donc ça ressemble à ça n'atteindrait jamais votre code Section.GetById(). –
Merci encore pour votre suggestion, mais la logique est correcte, même si elle pourrait faire avec un peu de rangement pour le rendre plus lisible. La solution au problème consistait à créer un DropDownList personnalisé qui gère la propriété Selected d'un objet SelectItem. J'espère qu'ils vont corriger le bug dans la prochaine version de MVC. – nfplee
J'ai un classeur modèle personnalisé [voir ici] (http://stackoverflow.com/questions/19280598/best-way-to-do-partial-update-to-net-mvc-4-model/19297099#19297099) qui tente de trier les propriétés afin que les champs d'identité soient toujours liés en premier. Je laisse la classe du modèle de vue réelle - dans ses configurateurs de propriétés - déclencher sa propre charge de dépôt plutôt que de le faire par le classeur personnalisé. (après avoir relu votre O.P. Je réalise que ce n'est pas un ajustement total, mais, peut-être donnera une idée à quelqu'un d'autre) – bkwdesign