编辑查看发布错误的对象

时间:2010-10-11 00:45:38

标签: c# asp.net-mvc

我有一个由VS 2010生成的编辑视图(下面的代码)。我不希望用户看到ListID,所以我对它进行了评论。

如果我评论<%:Html.TextBoxFor(model => model.ListID)%> 行,当我点击提交时,控制器而不是接收某些内容比如名称=“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 个答案:

答案 0 :(得分:3)

您需要将ID包含在隐藏字段中。