У меня есть вид редактирования, созданный 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 ...
}
Что я могу сделать, чтобы получить правильный объект?
Спасибо
Спасибо, СЛАКС! Есть ли способ сделать это без скрытого поля? Я смотрел проект без скрытого поля, но я не могу понять, как передается значение. –
Вы можете поместить идентификатор в строку запроса или проанализировать его вручную из файла cookie. Тем не менее, вы не можете волшебно сохранять состояние, не помещая его нигде. – SLaks