Je suis curieux de connaître la meilleure façon d'aborder le scénario suivant:Comment lier un ViewModel possédant des propriétés sub-viewmodel?
public class LittleThingViewModel
{
public string Id{ get; set; }
public string Name { get; set; }
public string Location { get; set; }
}
public class BigThingViewModel
{
public LittleThingViewModel little1 {get; set; }
public LittleThingViewModel little2 {get; set; }
public string propA {get; set; }
public string propB {get; set; }
public string propC {get; set; }
}
Dans l'action initiale de mon contrôleur CREER, je POPULATE deux LittleThingViewModels, les assigner à une nouvelle BigThingViewModel et le transmettre à la strongly- vue typée. J'utilise ensuite EditorFor pour rendre les contrôles d'édition pour les propriétés BigThing A, B et C.
Quelle est la meilleure technique pour rendre automatiquement les LittleThingViewModels à la forme de sorte que lorsque je publie sur mon contrôleur, il se lie automatiquement? (Mon but est d'afficher uniquement le nom et garder les autres propriétés cachées)
public ActionResult Create(BigThingViewModel b)
je trouve que je pouvais rendre A, B et propriétés C en plus de chaque propriété individuelle des deux LittleThing sous-viewmodels et il se lie avec succès BigThingViewModel lors du POST:
Html.DisplayFor(model=>model.little1.Name)
Html.HiddenFor(model=>model.little1.Name)
Html.HiddenFor(model=>model.little1.Id)
Html.HiddenFor(model=>model.little1.Location)
y at-il une technique qui me permet de rendre à la fois des étiquettes et des éléments cachés automatiquement au lieu d'avoir à les faire chaque explicitement à chaque fois?
Quelque chose comme:
Html.RenderFor(model=>model.little1)
Merci
J'ai un modèle de vue similaire et je suis en utilisant une vue partielle de la rendre. C'est dans un formulaire cependant, et quand mon action POST est appelée sur submit, les propriétés dans mon équivalent de LittleThingViewModel ne sont pas remplies. Dois-je implémenter un classeur de modèle personnalisé pour cela? –