|
Навигация
|
Главная » Visual Studio Использование JSON контроллера MVC в Visual Studio на шаблоне Empty Web Site и языке C#Источник: habrahabr humblegenius Речь в этой статье пойдет про подключение библиотеки MVC3 в Visual Studio 2010. Но мы не будем использовать шаблон проекта "ASP.NET MVC3 Web Application", а создадим Веб-сайт (Веб-узел) на основе шаблона "Empty Web Site", то есть с нуля. Мы будем подключать библиотеку к пустому Веб сайту, т.к. шаблона MVC для Веб сайта нет.В конце статьи будет реализован JSON контроллер на основе библиотеки MVC. Пояснил бы картинками, но они не вставляются. Поэтому буду пояснять словами. ПредысторияНедавно меня заинтересовала реализация MVC в Visual Studio. В интернете, и в частности на хабре, есть множество статей как его использовать, но пересмотрев штук 20 инструкций, я обнаружил, что все они основаны только на шаблоне "ASP.NET MVC3 Web Application". Первые два шага в большинстве инструкций сводятся к следующему:
File -> New -> Web Site -> Installed Templates -> Visual C# И потом ищет, где же этот MVC3: "Я же его только что скачал и установил". Если хорошо присмотреться, то все же MVC3 не зря был установлен: появился новый шаблон "ASP.NET Web Site (Razor)". Razor - это конечно круто, но в нем MVC не оказалось. Итак, получается, что MVC проекта для Веб сайта нет. Вдобавок признаюсь, что шаблон "ASP.NET MVC3 Web Application" мне особо не понравился, так как он слишком много в себе содержит. Для меня достаточно было бы включить туда необходимые библиотеки и создать структуру каталогов. Мне удобней, когда содержимое проекта контролирую я. Поэтому мне проще было создать MVC проект с нуля на основе шаблона "Empty Web Site". Я не буду вдаваться в подробности, что лучше использовать: "Web site" или "Web Application". Я, честно говоря, не уверен, что в полной мере представляю их достоинства и недостатки. Но как бы то ни было вариант нового проекта "Web site" в Visual Studio есть. Следовательно, он используется. Следовательно, кто-то захочет использовать MVC на его основе. Единственное, что меня смущало, это то, что в шаблоне "ASP.NET MVC3 Web Application" были некоторые возможности, которые я так и не смог реализовать в проекте "Web Site":
ПредисловиеСобственно все основы изложены тут. Чтобы не дублировать существующие в интернете статьи, я не буду описывать следующие вопросы: как запустить IIS сервер, как установить MVC3 и как его использовать. Я лишь кратко расскажу, как в пустой проект добавляется библиотека MVC, создаются роуты и добавляется контроллер, который выдает результаты в JSON формате. То есть будет рассмотрен тот минимум, который позволит затем использовать возможности MVC в своем "Web Site" проекте. Предполагается, что проект будет расположен на локальном IIS сервере. Создание проекта
Настройка проектаОткрываем "Solution Explorer". Изначально у нас в проекте только один файл: web.config. Добавим файл Global.asax, который будет обрабатывать все запросы к сайту: Правой кнопкой по проекту в "Solution Explorer". Затем пункт "Add New Item…". Выбираем "Global Application Class". Так как мы собрались использовать библиотеку MVC 3, то добавим ее в проект: Провой кнопкой по проекту в "Solution Explorer". Затем пункт "Add Reference…". Находим и добавляем System.Web.Mvc версии 3. Теперь если открыть web.config, то увидим, что тут-то она и прописалась. Чтобы эта библиотека была доступна в веб формах и в файле Global.asax, добавим в тег "system.web" следующий код:
Настройка роутовОткрываем Global.asax и вставляем в функцию Application_Start() следующий код:
Тут важно то, что в URL нужно будет на месте {controller} писать название класса, но без слова "Controller", а на месте {action} - метод класса. То есть, если URL = "http://site.com/Employeer/List", то будет вызван метод List класса EmployeerController. Создание контроллераДобавим директорию для классов "App_Code": Правой кнопкой по проекту в "Solution Explorer". Затем пункт "Add ASP.NET Folder". Выбираем "App_Code". В эту директорию добавим класс EmployeeController.cs. Контроллер должен наследоваться от класса System.Web.Mvc.Controller.
Запуск контроллераТеперь, если все сделано правильно, и в браузере ввести адрес типа "http://site.com/Employeer/List", то сервер должен выдать ошибку: This request has been blocked because sensitive information could be disclosed to third party web sites when this is used in a GET request. To allow GET requests, set JsonRequestBehavior to AllowGet. Это означает, что есть некая защита, чтобы json данные можно было смотреть только с текущего сайта. Можно эту защиту отключить:
Но лучше такую защиту не отключать, а дать серверу понять, что запрос идет с этого же сайта. Для этого создадим страницу index.html, добавим jquery.js в папку js и выполним ajax запрос с помощью jquery. Index.html:
Теперь, если в браузере ввести адрес сайта, то сервер должен показать страницу index.html и затем на экране появится окно со значениями объекта. ЗаключениеНадеюсь данная статья будет полезна, тем кто решит использовать MVC библиотеку на Веб сайте и, может быть, кто-то сэкономит некоторое время при создании своего проекта. Подключение проекта ASP.NET MVC к проекту ASP.NET WebForms. Ускоряем OpenMP в Visual C++. IBM Rational Purify PureCoverage. 7 шагов успешной миграции портала SharePoint 2007 на SharePoint 2010. Редакции IBM Rational Functional Tester. Главная » Visual Studio |
© 2024 Team.Furia.Ru.
Частичное копирование материалов разрешено. |