Je reçois un comportement inattendu de Html.EditorFor().Comportement Html.EditorFor inattendu dans ASP.NET MVC 2
J'ai ce contrôleur:
[HandleError]
public class HomeController : Controller
{
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Lister()
{
string[] values = { "Hello", "world", "!!!" };
return View(values);
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Lister(string[] values)
{
string[] newValues = { "Some", "other", "values" };
return View(newValues);
}
}
Et c'est mon avis qui est destiné à travailler pour ces deux:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<string[]>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Lister
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Lister</h2>
<% using (Html.BeginForm()) { %>
<% foreach (string value in Model) { %>
<%= value %><br />
<% } %>
<%= Html.EditorForModel() %>
<input type="submit" value="Append Dashes" />
<% } %>
</asp:Content>
Et le problème est que lorsque le poste est fait retour à partir de la vue, il frappe l'action correcte, mais les zones de texte affichent toujours les données du monde d'origine hello tandis que la boucle foreach
génère les nouvelles valeurs. Il semble que quelque chose dans ASP.NET remplace les valeurs de mon modèle de la mise à jour des zones de texte et qu'elles affichent simplement les mêmes valeurs anciennes.
J'ai trouvé ce problème en essayant d'apprendre EditorFor avec un IEnumerable.
thats bien un peu gênant pour mon but, est-ce que vous arrive d'avoir un lien vers la documentation pour cela? –
Je ne suis pas sûr que ce soit un comportement documenté. Le deuxième lien que j'ai fourni est une réponse de Phil Haack qui devrait être plus que suffisant :-) –