Asp.Net MVC View функция и ViewData
У меня небольшая путаница в Asp.Net MVC
Как работает рендеринг в Asp.net MVC? Мы вызываем функцию View - > которая найдет вид и попросим ViewEngine проанализировать его. Из-за ViewEngine конечный результат - HTML.
1) Независимо от того, какие ViewData мы создаем, они доступны внутри View. Насколько я понимаю, функции ViewData и View являются частью базового класса контроллера, который делает ViewData доступным внутри функции View. Это правильно?
2) Наконец, какой смысл с классом WebViewPage. Ключевое слово ViewData, которое мы используем на странице View(.cshtml), происходит из класса WebViewPage. Какую роль играет WebViewPage здесь.
Я буду очень признателен, если вы укажете мне хороший ресурс, чтобы понять то же самое
2 ответа
1) ViewData - это просто словарь объектов, которые вы можете заполнить в Контроллере и получить в представлении. Поскольку это словарь объектов, вам необходимо преобразовать данные обратно в тот тип, в котором они использовались в полной мере.
2) WebViewPage - базовый тип бритвенной страницы. Это определенный класс, в который страницы бритвы компилируются во время выполнения. web.config
внутри папки views указывает pageBaseType
из бритвенных страниц специально для WebViewPage. Это два хороших ресурса о том, почему он используется и как вы можете его расширить. Link1 и Link2.
Загляните внутрь исходного кода, который отображает посещение msdn