Я получаю неожиданное поведение от Html.EditorFor ().
У меня есть этот контроллер:
[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);
}
}
И это мое мнение, которое предназначено для обоих:
<%@ 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>
И проблема заключается в том, что когда сообщение выполняется из представления, оно выполняет правильное действие, но в текстовых полях по-прежнему отображаются исходные данные hello world, а цикл foreach
выводит новые значения . Такое ощущение, что что-то в ASP.NET переопределяет значения моей модели при обновлении текстовых полей, и они просто отображают те же самые старые значения.
Я обнаружил эту проблему, пытаясь изучить EditorFor с помощью IEnumerable.