代码之家  ›  专栏  ›  技术社区  ›  Artur Carvalho

编辑视图发布错误的对象

  •  1
  • Artur Carvalho  · 技术社区  · 14 年前

    如果我评论 <%:Html.TextBoxFor(model=>model.ListID)%> 第行,当我点击submit时,控制器不接收诸如name=“x”和listID=10的DSList,而是始终获取listID=0。

    <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<DomainModel.Entities.DSList>" %>
    
        <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
            Edit
        </asp:Content>
        <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
            <h2>
                Edit</h2>
            <% using (Html.BeginForm())
               {%>
            <%: Html.ValidationSummary(true) %>
            <fieldset>
                <legend>Fields</legend>
    
                <div class="editor-field">
                    <%--<%: Html.TextBoxFor(model => model.ListID) %>--%>
                </div>
    
                <div class="editor-label">
                    <%: Html.LabelFor(model => model.Name) %>
                </div>
                <div class="editor-field">
                    <%: Html.TextBoxFor(model => model.Name) %>
                    <%: Html.ValidationMessageFor(model => model.Name) %>
                </div>
                <p>
                    <input type="submit" value="Save" />
                </p>
            </fieldset>
            <% } %>
            <div>
                <%: Html.ActionLink("Back to List", "Index") %>
            </div>
        </asp:Content>
    

    控制器:

    [HttpPost]
            public ActionResult Edit(DSList l)
            {
     // l always comes with the id equal to 0.
    ... logic ...
    }
    

    如何才能接收正确的对象?

    1 回复  |  直到 14 年前
        1
  •  3
  •   SLaks    14 年前

    你需要在一个隐藏字段中包含ID。