Модель MVC привязка беспорядка

Я не использовал "привязку модели" в моем приложении MVC - то есть, я не попробовал вещь "отображающихся" исходных данных формы к одному или нескольким классам в списке параметров Действия, таким образом который описан во многих местах. Вместо этого я просто отправляю по параметрам для каждого отдельного поля формы или использую FormCollection.

Я думал, что хотел бы пробовать это, но я смущен основной предпосылкой. Кажется, что идея состоит в том, что Вы используете ту же модель для своей "привязки" (идущий с Представления на Контроллер), что Вы используете для своего ViewModel (идущий от Контроллера до Представления). (Я использую представления со строгим контролем типов с отдельным ViewModel для каждого Представления.)

Все же я нахожу, что потребности моего Представления очень отличаются от потребностей моего Действия - Представление, например, возможно, нуждается в нескольких SelectLists, из которых может выбрать пользователь. Действие, однако, только должно знать, какие объекты пользователь выбрал, не все опции в каждом списке.

Это действительно обычно для использования того же класса, входящего в оба направления?

Например, вот один из моих классов ViewModel:

    public class IntervieweeSelectLists
{
    public SelectList intervieweesList { get; set; }            
    public ClientSelectLists districtFilterLists { get; set; }
    public SchoolDisplayListInfo schoolListDisplay { get; set; } 
    public long selectedIntervieweeID { get; set; }             
    public string selectedIntervieweeName { get; set; }         
    public string selectedSiteID { get; set; }                  
    public bool needsInterviewList { get; set; }                
    public bool needsClientSelectLists { get; set; }          
}

(Плюс существуют некоторые методы, и т.д.),

Этот класс необходим Представлению, но не все это необходим Действию - т.е. intervieweesList, districtFilterLists, needsInterviewList, и т.д.

Я предполагаю, что мой вопрос: если бы я должен был записать пользовательский образцовый редактор связей для привязки этого класса, то я должен был бы воссоздать целый класс в образцовом редакторе связей, включая SelectLists, содержание которого прибывает из базы данных, когда все мне действительно нужны действительно ли вещи, пользователь, выбрал? Или я установил бы все значения от существующего экземпляра этого класса, представленного к образцовому редактору связей от Представления?

Извините, если это является несвязным..., что-то отсутствует в моем понимании здесь.На помощь!:)

1
задан Cynthia 28 July 2010 в 00:04
поделиться

2 ответа

Я бы воссоздал только те свойства, которые имеют смысл в подшивке модели. Необходимость заполнения SelectListItems из БД является огромными накладными расходами, если значение свойства не будет использоваться (как обычно бывает) в вашем действии, если не возникнет какая-либо ошибка на стороне сервера, и в этом случае вам нужно будет воссоздать всю ViewModel для повторного -отобразить вид.

1
ответ дан 2 September 2019 в 22:40
поделиться

Подшивка пользовательской модели не требуется. Когда ваш IntervieweeSelectLists возвращается в действии контроллера, ваши списки будут пустыми, поскольку данные, переданные обратно из сообщения, не будут содержать эту информацию. Итак, у вас есть объект, который имеет нужные вам ответы с пустыми списками. Теперь допустим, что что-то не подтверждается, и вам нужно снова отобразить все списки. Что ж, действия контроллера знают, когда эта модель будет отображаться, поэтому списки нужно только заполнить, прежде чем модель будет передана в представление. Если вам не нужно передавать модель в представление, а просто сохранять результаты, так как нет необходимости заполнять списки.

1
ответ дан 2 September 2019 в 22:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: