2009-07-23 4 views
3

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

ответ

2

Вы можете использовать TempData для сохранения этой информационной серверной части. Информация в TempData будет сохраняться для одного запроса. Однако мне не нравится этот вариант.

Можете ли вы не перенастроить свою модель из БД? Если пользователь не меняет информацию, зачем вам нужно возвращать все те же неизменные данные? Просто возьмите его снова, откуда вы его взяли.

+0

Вы правы. Это вариант. Мне просто показалось, что я должен, по крайней мере, вернуть модель в состояние, которое я ему отправил. Но тогда это то, на что подает форму, и mvccontrib не отображает элементы управления формы. – jlembke

1

Если вы хотите воссоздать модель, как она была сериализована в сетке, вам нужно будет встроить правильно названные элементы формы в сетку (или, возможно, за пределы сетки) и в той же форме, что и кнопка, содержащая кнопку, которая возвращается к действию, в котором вы хотите, чтобы ваша модель воссоздавалась.

Хотя это выполнимо, вы по существу воссоздаете __VIEWSTATE, и это сильно поражает работой с MVC (читайте «это уродливый взломать, и вы должны удалить свою среду IDE, даже задумываясь об этом»).

Трудно указать вам в правильном направлении, не имея лучшего понимания сценария, который вы пытаетесь решить. Обычный рабочий процесс в этих ситуациях получить модель

  1. генерации странице
  2. записи любых изменений в модель в формы на странице
  3. представить изменения в действие
  4. получить модель снова
  5. использование TryUpdate для сохранения изменений от должности в модели

Если вы страдаете проблемами с производительностью (вы доказали, что у вас есть проблема с перфорацией? Вы не оптимизируете преждевременно?), Адресуйте их там, где они происходят (например, кеширование в вашем доступе к данным), а не изгибают MVC способами, которых это действительно не должно быть.

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