31 Топ-31 вопросов на собеседовании по MVC & Ответы

Anonim

Скачать PDF

1) Объясните, что такое модель-представление-контроллер?

MVC - это шаблон архитектуры программного обеспечения для разработки веб-приложений. Это обрабатывается тремя объектами Модель-Представление-Контроллер.

2) Упомяните, что представляет собой Model-View-Controller в приложении MVC?

В модели MVC

  • Модель - представляет собой область данных приложения. Другими словами, бизнес-логика приложения содержится в модели и отвечает за поддержание данных.
  • Просмотр - представляет собой пользовательский интерфейс, с которым общаются конечные пользователи. Короче говоря, вся логика пользовательского интерфейса содержится в VIEW.
  • Контроллер - это контроллер, который отвечает на действия пользователя. На основе действий пользователя соответствующий контроллер реагирует в рамках модели и выбирает представление для визуализации, отображающее пользовательский интерфейс. Логика пользовательского ввода содержится внутри контроллера.

3) Объясните, в какой сборке определен фреймворк MVC?

Платформа MVC определена в System.Web.Mvc.

4) Перечислите несколько различных типов возврата метода действия контроллера?

  • Посмотреть результат
  • Результат Javascript
  • Результат перенаправления
  • Результат Json
  • Контент Результат

5) Упомяните, в чем разница между добавлением маршрутов в приложение веб-формы и приложение MVC?

Чтобы добавить маршруты в приложение веб-формы, мы можем использовать метод MapPageRoute () класса RouteCollection, где, добавляя маршруты в приложение MVC, вы можете использовать метод MapRoute ().

6) Назовите два способа добавления ограничений к маршруту?

Два метода добавления ограничений к маршруту:

  • Используйте регулярные выражения
  • Используйте объект, реализующий интерфейс IRouteConstraint

7) Назовите преимущества MVC?

  • MVC разделяет ваш проект на другой сегмент, и разработчикам становится легко работать над ним.
  • Легко редактировать или изменять какую-то часть вашего проекта, что снижает затраты на разработку и обслуживание.
  • MVC делает ваш проект более систематическим

8) Упомяните, что функции beforFilter (), beforeRender и afterFilter делают в контроллере?

  • beforeFilter (): эта функция запускается перед каждым действием в контроллере. Это подходящее место для проверки наличия активного сеанса или проверки прав пользователей.
  • beforeRender (): эта функция вызывается после логики действия контроллера, но до рендеринга представления. Эта функция не часто используется, но может потребоваться, если вы вызываете render () вручную до завершения данного действия.
  • afterFilter (): эта функция вызывается после каждого действия контроллера и после завершения рендеринга. Это последний метод контроллера для запуска

9) Объясните роль компонентов Presentation, Abstraction и Control в MVC?

  • Презентация: это визуальное представление определенной абстракции в приложении.
  • Абстракция: это функциональность бизнес-домена в приложении.
  • Контроль: это компонент, который поддерживает согласованность между абстракцией в системе и их представлением пользователю в дополнение к взаимодействию с другими элементами управления в системе.

10) Назовите преимущества и недостатки модели MVC?

Преимущества

Недостатки

  • Он представляет собой четкое разделение между бизнес-логикой и логикой представления.
  • Каждый объект MVC имеет разные обязанности
  • Параллельно идет разработка
  • Легко управлять и поддерживать
  • Все классы и объект независимы друг от друга
  • Выкройка модели немного сложная
  • Имеется ввиду неэффективность доступа к данным
  • С современным пользовательским интерфейсом сложно использовать MVC
  • Вам нужно несколько программистов для параллельной разработки
  • Требуется знание нескольких технологий

11) Объясните роль «ActionFilters» в MVC?

В MVC «ActionFilters» помогают вам выполнять логику во время выполнения действия MVC или его выполнения.

12) Объясните, каковы шаги для выполнения проекта MVC?

Этапы выполнения проекта MVC включают:

  • Получите первый запрос на заявку
  • Выполняет маршрутизацию
  • Создает обработчик запросов MVC
  • Создать контроллер
  • Выполнить контроллер
  • Вызвать действие
  • Выполнить результат

13) Объясните, что такое маршрутизация? Какие три сегмента для маршрутизации важны?

Маршрутизация помогает вам определить структуру URL-адреса и сопоставить URL-адрес с контроллером.

Для маршрутизации важны три сегмента:

  • ControllerName
  • ActionMethodName
  • Параметр

14) Объясните, как выполняется маршрутизация в шаблоне MVC?

Существует группа маршрутов, называемая RouteCollection, которая состоит из зарегистрированных в приложении маршрутов. Метод RegisterRoutes записывает маршруты в эту коллекцию. Маршрут определяет шаблон URL-адреса и обработчик, который будет использоваться, если запрос соответствует шаблону. Первый параметр метода MapRoute - это имя маршрута. Второй параметр будет шаблоном, которому соответствует URL. Третий параметр может быть значениями по умолчанию для заполнителей, если они не определены.

15) Объясните, используя гиперссылку, как можно переходить от одного представления к другому?

Используя метод «ActionLink», как показано в приведенном ниже коде. Приведенный ниже код создаст простой URL-адрес, который поможет перейти к контроллеру «Home» и вызвать действие «GotoHome».

Свернуть / скопировать код

<% = Html.ActionLink ("Home", "Gotohome")%>

16) Упомяните, как можно поддерживать сеанс в MVC?

Сессию можно поддерживать в MVC тремя способами: tempdata, viewdata и viewbag.

17) Упомяните, в чем разница между Temp data, View и View Bag?

  • Временные данные: помогает сохранять данные при переходе с одного контроллера на другой.
  • Просмотр данных: помогает сохранять данные при переходе от контроллера к просмотру.
  • Пакет просмотра: это динамическая оболочка вокруг данных просмотра.

18) Что такое частичное представление в MVC?

Частичное представление в MVC отображает часть содержимого представления. Это помогает уменьшить дублирование кода. Проще говоря, частичное представление позволяет отображать представление в родительском представлении.

19) Объясните, как можно реализовать Ajax в MVC?

В MVC Ajax можно реализовать двумя способами.

  • Библиотеки Ajax
  • JQuery

20) Упомяните, в чем разница между ActionResult и ViewResult?

ActionResult является абстрактным классом, а ViewResult является производным от класса AbstractResult. «ActionResult» имеет ряд производных классов, таких как «JsonResult», «FileStreamResult» и «ViewResult».

ActionResult лучше всего подходит, если вы динамически получаете различные типы представления.

21) Объясните, как можно отправить результат обратно в формате JSON в MVC?

Чтобы отправить результат обратно в формате JSON в MVC, вы можете использовать класс «JSONRESULT».

22) Объясните, в чем разница между просмотром и частичным просмотром?

Вид

Частичный вид

  • Он содержит страницу макета
  • Перед отображением любого представления отображается начальная страница просмотра.
  • Представление может иметь теги разметки, такие как body, html, head, title, meta и т. Д.
  • Просмотр не является легким по сравнению с частичным просмотром
  • Он не содержит страницы макета
  • Частичное представление не проверяется для файла viewstart.cshtml. Мы не можем поместить общий код для частичного просмотра в viewStart.cshtml.page
  • Частичное представление разработано специально для рендеринга в представлении, и именно поэтому оно не содержит никакой разметки.
  • Мы можем передать обычное представление методу RenderPartial

23) Перечислить типы результатов в MVC?

В MVC есть двенадцать типов результатов в MVC, где класс «ActionResult» является основным классом, а 11 - их подтипами.

  • ViewResult
  • PartialViewResult
  • EmptyResult
  • RedirectResult
  • RedirectToRouteResult
  • JsonResult
  • JavaScriptResult
  • ContentResult
  • FileContentResult
  • FileStreamResult
  • FilePathResult

24) Упомяните, в чем важность NonActionAttribute?

Все общедоступные методы класса контроллера рассматриваются как метод действия, если вы хотите предотвратить использование этого метода по умолчанию, тогда вам необходимо назначить общедоступный метод с помощью NonActionAttribute.

25) Укажите, как используется маршрут по умолчанию {resource} .axd / {* pathinfo}?

Этот маршрут по умолчанию предотвращает передачу контроллеру запроса файла веб-ресурса, такого как Webresource.axd или ScriptResource.axd.

26) Укажите порядок выполнения фильтров, если реализовано несколько фильтров?

Порядок фильтров будет таким:

  • Фильтры авторизации
  • Фильтры действий
  • Фильтры ответов
  • Фильтры исключений

27) Назовите, какие фильтры выполняются в итоге?

В конце выполняются «Фильтры исключений».

28) Упомяните, какие расширения файлов для бритвенных просмотров?

Для бритвенных изображений расширения файлов:

  • .cshtml: если C # - язык программирования.
  • .vbhtml: если VB - язык программирования.

29) Назовите два способа добавления ограничений к маршруту?

Два метода добавления ограничений к маршруту:

  • Использование регулярных выражений
  • Использование объекта, реализующего интерфейс IRouteConstraint

30) Назовите два случая, когда маршрутизация не реализована или не требуется?

Два случая, когда маршрутизация не требуется:

  • Когда обнаружен физический файл, соответствующий шаблону URL
  • Когда маршрутизация отключена для шаблона URL

31) Назовите основные преимущества использования MVC?

Есть два ключевых преимущества использования MVC

  • Поскольку код помещен в отдельный файл класса, вы можете в значительной степени использовать код.
  • Поскольку программный код просто перемещается в класс .NET, можно автоматизировать тестирование пользовательского интерфейса. Это дает возможность автоматизировать ручное тестирование и писать модульные тесты.