Ok, je me suis un viewmodel comme suit:Reliure Voir modèle à partir d'un poste de forme avec des types complexes internes
public class PageViewModel
{
public Item Item { get; set; }
...
public PageViewModel
{ }
public PageViewModel(Item itemWebPage)
{
...
}
}
-je utiliser un formulaire pour modifier cet article à l'aide d'une route comme: /contrôleur/Edition/43
le contrôleur utilise ce code:
[AcceptVerbs("GET")]
public new ActionResult Edit(int id)
{
...
PageViewModel pageViewModel = new PageViewModel(...);
return PartialView(pageViewModel);
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, PageViewModel item)
{
if (ModelState.IsValid)
{
...
// Here, the item.Item.ID is null, I want it to map to the id of the route.
}
return PartialView("Edit", item);
}
ce que je veux atteindre est l'ID de la propriété: item.Item.ID être lié à l'ID de l'URL (l'itinéraire). Cependant, je ne peux pas le faire fonctionner. J'ai essayé d'utiliser l'attribut [Bind()].
Je l'ai fixé en utilisant maintenant un champ caché sous la forme comme ceci:
<%= Html.HiddenFor(model => model.Item.ID)%>
Cependant, cela se sent un peu dégueu. Je voudrais savoir s'il y a une façon plus propre de faire cela?
Finalement, il était si simple :-) merci! –