Сетка MVCContrib и проводка обратно с моделью связующего
Содержимое моей сетки MVCContrib взято из модели в строго типизированном представлении. Когда сообщение сделано, содержимое сетки не находится в объекте модели, когда оно возвращается в контроллер. Я вижу, что это потому, что сетка отображается как таблица с текстом в ячейках. Могу ли я что-нибудь сделать, чтобы при появлении сообщения данные списка, которые я отправил в таблицу, вернулись в сообщение?
2 ответа
Вы можете использовать TempData для сохранения этой информации на стороне сервера. Информация в TempData будет сохраняться для одного запроса. Однако мне не очень нравится этот вариант.
Вы не можете заселить свою модель из БД? Если пользователь не меняет информацию, зачем вам отправлять обратно все ту же неизменную информацию? Просто возьмите его снова с того места, где вы его получили раньше.
Если вы хотите воссоздать модель в том виде, в каком она была сериализована, в сетку, вам нужно будет встраивать правильно названные элементы формы в сетку (или, возможно, вне сетки) и в ту же форму, что и та, которая содержит кнопку, отправляемую обратно в действие, где вы хотите воссоздать вашу модель.
Хотя это выполнимо, вы, по сути, воссоздаете __VIEWSTATE, и это лишает вас радости от работы с MVC (читайте: "Это отвратительный взлом, и вы должны удалить свою IDE, даже подумав об этом").
Трудно указать вам правильное направление, не имея лучшего понимания сценария, который вы пытаетесь решить. Обычный рабочий процесс в этих ситуациях - получить модель
- создать страницу
- записывать любые изменения в модели в форме на странице
- отправить изменения в действие
- получить модель снова
- используйте TryUpdate, чтобы сохранить изменения из публикации в модели
Если вы испытываете проблемы с производительностью (вы доказали, что у вас проблемы с производительностью правильно? Вы не оптимизируете преждевременно?), Устраните их там, где они происходят (например, кеширование в вашем доступе к данным), вместо того, чтобы изгибать MVC так, как это действительно происходит. не должно быть