簡體   English   中英

ASP.NET MVC 2 中意外的 Html.EditorFor 行為

[英]Unexpected Html.EditorFor behavior in ASP.NET MVC 2

我從 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 中的某些東西正在通過更新文本框覆蓋我的模型值,而它們只是顯示相同的舊值。

我在嘗試使用 IEnumerable 學習 EditorFor 時發現了這個問題。

這不是問題,這是正常行為。 所有的助手都是這樣工作的。 他們首先查看發布的值,然后查看模型以執行綁定。 也就是說,即使您在控制器操作中修改模型,它們也會使用初始發布的值。

相關問題:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM