J'ai une vue dans MVC 2 où je modifie une «page». Une page a un nom, un titre et un contenu. Le contenu est de type EditableContent, avec Width, CssClass et Columns. Colonnes est une liste.Non-concordance d'ID de liaison de modèle ASP.NET MVC
Quand je fais cela dans la vue:
<%= Html.TextBoxFor(m => m.Name) %>
Il génère le code HTML suivant:
<input type="text" value="About Page" name="Name" id="Name">
Et quand je poste à l'action Edit dans ContentController:
/// <summary>
/// Edits the specified form.
/// </summary>
/// <param name="item">The content page.</param>
/// <returns>ActionResult for edit</returns>
[HttpPost]
public ActionResult Edit(Page item)
{
if (ModelState.IsValid)
{
}
return View(item);
}
Il ne peut pas lier la propriété Name à item.Name. En recherchant les valeurs dans Request.Form, je vois le paramètre Name.
Si je rends la zone de texte manuellement, en utilisant ceci:
<%= Html.TextBox("item.Name", Model.Name)%>
La valeur est binded parfaitement à l'instance de page dans l'action du contrôleur. Je fais quelque chose de fondamentalement faux ici?
J'ai maintenant. Cela n'aide pas. Je me demande si je devrais utiliser le CastleBinder dans MvcContrib. – MartinHN
essayez d'utiliser dans la vue. Merci –