Странное скрытое значение MVC3 отсутствует во время вызова PartialView Ajax - PullRequest
1 голос
/ 10 июня 2011

У меня очень странная проблема при рендеринге частичного представления. На моей странице есть таблица, строки которой отображаются с использованием частичного представления. Вот фрагмент

<td>
    <img src="@Url.Content("~/Content/Images/edit_icon.gif")" class="editLine" />
    <img src="@Url.Content("~/Content/Images/delete_icon.gif")" class="deleteLine" />
    @Html.HiddenFor(model => model.LineId)
</td>

Это хорошо отображается при первой загрузке страницы. Входные теги имеют значение, установленное для идентификатора. Однако когда я выполняю ajax-вызов и возвращаю PartialView из контроллера, это значение всегда равно 0.

Код контроллера:

line.LineId = 12; //whatever the actual value is
return PartialView("Line", line);

И код JQuery

$.ajax({
        data: {
            Id: id
        },
        success: function (data, textStatus) {

           $('#lines').append(data);

        }

Когда я отлаживаюсь и смотрю, я вижу, что данные вернулись как

<input name="lineId" id="lineId" value="0" />

Я отлаживал через ВСЕ, и lineId не равен 0. Затем я отлаживал через само представление, и всякий раз, когда я делал Html.Hidden ("lineId", anyvalueHere), он отображался как 0. Когда я изменил его на Html.Hidden ( "lineId_" + actualId, actualId) это сработало.

Это известное / ожидаемое поведение? Я могу представить, что это не джайвинг с дубликатами. Тем не менее, он прекрасно отрисовывается при загрузке страницы, где я использую точно такой же частичный просмотр. Есть ли волшебный джуджу для вещей на стороне клиента? Я думаю, что нет, поскольку это просто действие контроллера, и оно не знает разницы. Кто-нибудь видел это. Спасибо

1 Ответ

3 голосов
/ 10 июня 2011

Если вы изменяете значение при публикации, это проблема.Используйте:

<input type='hidden' name='LineId' value='<%: Model.LineId %>'/>

вместо Html.HiddenFor.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...