Question

Je reçois un comportement inattendu de Html.EditorFor ().

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 voici 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>

le problème est que lorsque le poste est en retrait de la vue, elle touche l'action correcte, mais les zones de texte montrent encore les données Bonjour tout le monde d'origine tandis que les sorties boucle foreach les nouvelles valeurs . Il se sent comme quelque chose dans ASP.NET est PRÉPONDÉRANTS mes valeurs de modèle de mise à jour des zones de texte et ils sont simplement afficher les mêmes valeurs anciennes.

Je trouve cette question, tout en essayant d'apprendre EditorFor avec un IEnumerable.

Était-ce utile?

La solution

Ce n'est pas un problème, il est le comportement normal. Tous les assistants travaillent de cette façon. Ils ont d'abord regarder les valeurs affichées, puis le modèle afin d'effectuer la liaison. C'est-à-dire même si vous modifiez le modèle dans votre action du contrôleur, ils utiliseront la première affiché des valeurs.

Questions connexes:

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top