Есть ли законная причина использовать ViewData в asp.net MVC - PullRequest
0 голосов
/ 24 августа 2009

с привязкой модели, где вы можете создать объект для отправки и привязки к представлению, есть ли причина когда-либо использовать ViewData?

Ответы [ 3 ]

2 голосов
/ 24 августа 2009

ViewData, кажется, существует как простой и удобный подход к тому, что вы действительно должны делать синтаксически более чистым способом. Полагаю, что MVC-эквивалент ArrayList работает просто отлично, но вам будет сложно найти действительно законное оправдание для использования его в хорошем коде.

Единственное исключение, которое я могу придумать для его использования, - это включение чего-то динамического во ВСЕ ваши страницы, которое добавляется в класс ActionFilter или базовый контроллер - например, «WebsiteTitle». Вместо того, чтобы пытаться вмешиваться в данные, возвращаемые действием Controller, было бы более целесообразно включить что-то подобное в коллекцию ViewData - возможно, с префиксом некоторого уникального идентификатора, чтобы было очевидно, что оно включено вне действия контроллера. ViewData["Base_WebSiteName"], например.

2 голосов
/ 24 августа 2009

Я не могу предвидеть случай, когда я использовал бы его, если бы у меня не было статической информации, поступающей из базы данных для страницы / мастера, которая затем отображалась, скажем, <p> или что-то подобное.

Если страница была страницей только для чтения, в которой возвращался список элементов, и я также хотел отображать текст из БД, тогда я мог бы использовать ViewData.

Но это своего рода исключение. Если бы я возвращал список элементов из БД вместе с некоторыми другими вещами, я бы создал модель представления формы и просто включил в нее любые другие данные.

Так редко, наверное, мой ответ здесь.

0 голосов
/ 24 августа 2009

Я довольно новичок в MVC, но мало что я сделал, я написал собственные объекты для всех моих представлений.

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

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