2010-10-11 3 views
1

У меня есть вид редактирования, созданный VS 2010 (код ниже). Я не хочу, чтобы пользователь видел ListID, поэтому я прокомментировал это.Редактировать Просмотреть записи неправильного объекта

Что происходит, что если я закомментировать <%: Html.TextBoxFor (модель => model.ListID)%> линии, когда я ударил представить, контроллер вместо того чтобы получать что-то вроде DSLIST с именем =» x "и ​​listID = 10, всегда получает 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 ... 
} 

Что я могу сделать, чтобы получить правильный объект?

Спасибо

ответ

3

Вам необходимо указать ID в скрытом поле.

+0

Спасибо, СЛАКС! Есть ли способ сделать это без скрытого поля? Я смотрел проект без скрытого поля, но я не могу понять, как передается значение. –

+0

Вы можете поместить идентификатор в строку запроса или проанализировать его вручную из файла cookie. Тем не менее, вы не можете волшебно сохранять состояние, не помещая его нигде. – SLaks

Смежные вопросы