Сохраняя вкладку контролирует данные в MVC 2 - PullRequest
0 голосов
/ 03 марта 2011

У меня несколько вкладок, и я вызываю файл ascx для каждой вкладки, у меня есть кнопка управления и отправки для каждого файла ascx. Теперь, когда я вношу данные в первую вкладку и переключаюсь на вторую вкладку, вводю некоторые данные и нажимаю на кнопку «Отправить», данные первой вкладки также становятся пустыми.

Я хочу сохранить данные для первой вкладки или когда я введу данные на первой вкладке и нажму "Отправить", тогда все данные, которые есть в других вкладках, должны быть там.

Может ли какой-нибудь источник решить эту проблему.

1 Ответ

0 голосов
/ 03 марта 2011

MVC2 не имеет "viewstate", как web.forms. Это означает, что если он каким-то образом не отображается на экране, вы должны сохранить его в сеансе, чтобы сохранить его. Я бы не рекомендовал использовать сессию, так как в некоторых ситуациях вы можете связать себя узлами, но в некоторых случаях это может подойти.

Если вы не хотите использовать сессию, у вас обычно есть 2 варианта:

1 - Показать все вкладки на 1 странице, а затем показать / скрыть их с помощью jquery для клиента

Например:

<a href="#" onclick="showTab('tabcontents1');">Tab 1</a>
<a href="#" onclick="showTab('tabcontents2');">Tab 2</a>
<a href="#" onclick="showTab('tabcontents3');">Tab 3</a>

<div id="tabcontents1" class="tabcont">
...
</div>
<div id="tabcontents2" class="tabcont">
...
</div>
<div id="tabcontents3" class="tabcont">
...
</div>

Затем используйте JQuery или javascript, чтобы скрыть их при загрузке и показать их при нажатии. Например:

$(document).ready(function () {
   $(".tabcont").hide();
});

function showTab(tab) {
   $(".tabcont").hide();
   $("#"+tab).show();
}

ИЛИ

2 - Поместите любые данные, которые вы хотите сохранить в скрытых вводах в вашей форме. Если у вас есть только маленькая модель, это может быть самый простой подход.

ПРИМЕЧАНИЕ: Это правило является правилом HTML, а не правилом MVC. Веб-формы просто «подделывают» упорство с помощью ViewState, а MVC более честно говорит о том, как вы справляетесь с http.

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