Не могли бы вы подробно объяснить, как используется папка App_Start() в MVC4? Я вижу, что эта папка на самом деле недоступна в предыдущих версиях MVC. В этой папке 5 файлов.
- AuthConfig
- BundleConfig,
- FilterConfig,
- RouteConfig,
- WebApiConfig.
Не могли бы вы подробно объяснить, как используется папка App_Start() в MVC4? Я вижу, что эта папка на самом деле недоступна в предыдущих версиях MVC. В этой папке 5 файлов.
App_Start
- это еще одна папка, объединяющая конфигурацию ASP.NET MVC, которая в предыдущих версиях ASP.NET MVC была выполнена в Global.asax
.
ASP.NET MVC вводит все больше элементов конфигурации, и эта папка идеально подходит для размещения этой конфигурации. Например, MVC 5 new auth. конфигурации, например, для сторонних поставщиков регистрации, также помещаются в эту папку (в Startup.Auth.cs
).
App_Start
не является специальной папкой ASP.NET, распознанной ASP.NET/IIS. Вы можете переименовать папку, если хотите. Это просто соглашение, например App_GlobalResouces
и т.д.
Ниже приведены некоторые сведения и контрольные точки для каждого файла. Использование этих файлов довольно просто. Я включил несколько онлайн-ссылок, которые могли бы помочь вам понять больше.
AuthConfig
— регистрирует поставщиков внешней аутентификации.
Дополнительную информацию см. В разделе ASP.NET MVC внешних поставщиков проверки подлинности.
BundleConfig
— регистрирует ваши CSS и JS, чтобы их можно было связать и минимизировать. См. Также ASP.NET MVC: Руководство: объединение и минимизация.
WebApiConfig
— применимо только в том случае, если вы используете веб-API. Его можно использовать для настройки маршрутов, специфичных для веб-API, любых параметров веб-API и служб веб-API. См. Также настройка ASP.NET MVC Web API 2
FilterConfig
— зарегистрированных глобальных фильтров. Эти фильтры применяются ко всем действиям и контроллерам. См. Также ASP.NET MVC 3: Глобальные фильтры действий
RouteConfig
— вы уже нашли информацию.
Папка App_start была введена в Mvc4. Он содержит различные файлы конфигурации, такие как:
App_start - это не специальная папка в MVC и файлы классов внутри нее, это просто файлы нормального класса с различным приложением конфигурации (фильтрация, группировка, маршрутизация и т.д.), и все эти настройки регистрируются в методе Application_Start файла Global.asax.cs.
Используется для создания и регистрации пакетов для CSS и JS файлов. для например. jQuery, jQueryUI, проверка jQuery, модернизация и CSS сайта.
Объединение и минимизация - это два метода для увеличения времени загрузки запроса на уменьшая количество запросов на сервер и уменьшая размер (например, CSS и JavaScript). Microsoft предоставляет сборку Microsoft.Web.Optimization для тех же
например. Позволяет создать два пакета. один для стиля (css) и другой для script (javascript)
Вы можете создать пакет для css и javascript соответственно, позвонив Метод Add() класса BundleCollection в файле BundleConfig.cs.
ШАГ 1:
Создание набора стилей
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.min.css", "~/Content/mystyle.min.css"));
Создание Script Bundle
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include( "~/Scripts/jquery-1.7.1.min.js", "~/Scripts/jquery.validate.min.js"));
ШАГ 2:
Выше расслоения определены в классе BundleConfig следующим образом:
public class BundleConfig { public static void RegisterBundles(BundleCollection bundles) { //Adding StyleBundle to BundleCollection bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.min.css", "~/Content/mystyle.min.css")); //Adding ScriptBundle to BundleCollection bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include( "~/Scripts/jquery-1.7.1.min.js", "~/Scripts/jquery.validate.min.js")); } }
ШАГ 3:
Регистрация пакета
Все пакеты зарегистрированы в событии Application_Start для Global.asax:
protected void Application_Start() { BundleConfig.RegisterBundles(BundleTable.Bundles); }
Minification - это метод удаления ненужных символов (например, пробел, новая строка, вкладка) и комментарии от JavaScript и CSS файлы для уменьшения размера, в свою очередь, увеличивают время загрузки веб-страницы. для например. jquery-1.7.1.min.js - это мини файл js для jquery-1.7.1, в основном используется для производственной среды, для non-prod вы можете лучше использовать не- minified js, чтобы иметь лучшую читаемость.
например,
Функция Jquery в несжатом js может выглядеть примерно так:
( function( global, factory ) {
"use strict";
if ( typeof module === "object" && typeof module.exports === "object" ) {
// For CommonJS and CommonJS-like environments where a proper `window`
// is present, execute the factory and get jQuery.
// For environments that do not have a `window` with a `document`
// (such as Node.js), expose a factory as module.exports.
// This accentuates the need for the creation of a real `window`.
// e.g. var jQuery = require("jquery")(window);
// See ticket #14549 for more info.
module.exports = global.document ?
factory( global, true ) :
function( w ) {
if ( !w.document ) {
throw new Error( "jQuery requires a window with a document" );
}
return factory( w );
};
} else {
factory( global );
}
та же самая функция в сжатом или мини-js будет выглядеть так:
!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)
}
Используется для создания и регистрации глобального фильтра MVC:
например.
Примечание. Как упоминалось выше, фильтры выполняются в порядке.
например. Фильтры аутентификации, представленные с помощью MVC5:
public interface IAuthenticationFilter { void OnAuthentication(AuthenticationContext filterContext); void OnAuthenticationChallenge(AuthenticationChallengeContext filterContext); }
Вы можете создать свой атрибут фильтра CustomAuthentication, выполнив IAuthenticationFilter, как показано ниже -
public class CustomAuthenticationAttribute : ActionFilterAttribute, IAuthenticationFilter
{
public void OnAuthentication(AuthenticationContext filterContext)
{
//logic goes here
}
Запускается после метода OnAuthentication
public void OnAuthenticationChallenge(AuthenticationChallengeContext
filterContext)
{
{
//logic goes here
}
}
Настройка фильтров
Вы можете настроить свой собственный фильтр в своем приложении на следующие три уровня:
Глобальный уровень
Зарегистрировав фильтр в событии Application_Start Файл Global.asax.cs:
protected void Application_Start() { FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); }
Уровень контроллера
Поместив фильтр в верхнюю часть имени контроллера:
[Authorize(Roles="Admin")] public class AdminController : Controller { // Logic goes here }
Уровень действия
Поместив фильтр вверху имени действия:
public class UserController : Controller { [Authorize(Users="User1,User2")] public ActionResult LinkLogin(string provider) { // Logic goes here return View(); } }
Это используется для регистрации различных шаблонов маршрутов для вашего Asp.Net MVC
выражение. Маршрутизация играет важную роль в приложении ASP.NET MVC потока выполнения, он сопоставляет URL-адрес запроса с конкретным действием контроллера, используя Таблица маршрутизации. Мы можем определить правила маршрутизации для движка, чтобы он мог отображать > входящие URL-адреса для соответствующего контроллера. Маршрутизатор использует правила маршрутизации которые определены в файле Global.asax, чтобы проанализировать URL-адрес и узнать путь соответствующего контроллера. Мы можем найти следующий фрагмент кодa > в методе Application_Start() файла Global.asax.
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
Мы можем найти файл RouteConfig.cs в папке App_Start. Если мы следуем этот метод в классе RouteConfig, мы найдем один по умолчанию настроенный маршрут следующим образом. Строка 3-7 настраивает один маршрут по умолчанию.
public static void RegisterRoutes(RouteCollection routes) { 1. routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 2. 3. routes.MapRoute( 4. name: "Default", 5. url: "{controller}/{action}/{id}", 6. defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 7. ); }
Строка 4: имя для маршрута. Строка 5: представляет URL: контроллер, действие, за которым следует id (если есть). Строка 6: контроллер по умолчанию будет Домой, действие по умолчанию будет индексом, а идентификатор - необязательным.
Это используется для регистрации различных маршрутов API-интерфейсов WEB, таких как Asp.Net MVC, а также для настройки дополнительных конфигураций WEB API.
Используется для регистрации внешних поставщиков проверки подлинности например. если вы хотите, чтобы пользователи регистрировались с учетными данными от внешнего поставщика, таких как Facebook, Twitter, Microsoft или Google, а затем интегрировали некоторые функции этих поставщиков в ваше веб-приложение.
Папка App_start была введена в Mvc4. Он содержит различные файлы конфигураций, например:
для вашего приложения. Все эти параметры зарегистрированы в модуле App_Start файла Global.asax.cs.
BundleConfig.cs:
Это используется для создания и регистрации пакетов для CS и JS файлов. По умолчанию в этот файл добавляются различные пакеты, включая jQuery, jQueryUI, проверку jQuery, модернизатор и сайт Css.
FilterConfig.cs -
Это используется для создания и регистрации глобального фильтра ошибок фильтра MVC, фильтра действий и т.д. По умолчанию он содержит фильтр HandleErrorAttribute.
RouteConfig.cs -
Используется для регистрации различных шаблонов маршрутов для вашего приложения ASP.NET MVC. По умолчанию один маршрут зарегистрирован здесь, названный как маршрут по умолчанию.
WebApiConfig.cs -
Это используется для регистрации различных маршрутов API-интерфейсов WEB, таких как Asp.Net MVC, а также для установки дополнительных настроек конфигурации WEB API.
В предыдущих версиях MVC у нас есть только метод RegisterRoutes() в файле global.asax для настройки маршрутизации. MVC 4 имеет встроенные шаблоны для разработки мобильных веб-приложений, веб-apis (успокаивающие http-сервисы). Также для настройки маршрутов для всех этих разработок, основанных на шаблонах, мы будем использовать AuthConfig.cs(авторизация), BundleConfig.cs(web potimization), FilterConfig.cs, RouteConfig.cs, WebApiConfig.cs(WEB API), и они будут поддерживаться в папке App_start. Давайте посмотрим на каждый из этих файлов config.cs. AuthConfig.cs - настройки в этом файле позволяют вам заходить на сайт ASP.NET MVC с использованием учетных данных сторонних клиентов, таких как учетная запись fb, учетная запись google, учетная запись yahoo и т.д., И вы также можете зарегистрироваться. BundleConfig.cs: настройки в этом файле позволяют повысить производительность приложений, используя набор... WebApiConfig: устанавливает параметры маршрутизации для WEB API (Примечание: в URL не требуется никаких действий)
AuthConfi g.cs: используется для настройки параметров безопасности, включая сайты для входа в систему OAuth.
BundleConfi g.cs: используется для регистрации пакетов, используемых связыванием и минификсацией система. По умолчанию добавляются несколько пакетов, включая jQuery, jQueryUI, jQuery валидации, Modernizr и ссылок CSS по умолчанию.
FilterConfi g.cs: Неудивительно, что это используется для регистрации глобальных фильтров MVC. Единственный Зарегистрированный по умолчанию файл HandleErrorAttribute, но это отличное место для размещения другие регистрации файлов.
RouteConfi g.cs: хранит дедушку из утверждений MVC confi g, Route confi конфигурирования.
WebApiConfi g.cs: используется для регистрации маршрутов веб-API, а также для установки любой дополнительной веб-страницы Конфигурация API.
Все эти настройки зарегистрированы в методе App_Start файла Global.asax.cs.
BundleConfig.cs:
Это используется для создания и регистрации пакетов для файлов CS и JS, которые есть в шаблоне.
FilterConfig. cs- Используется для создания и регистрации глобального фильтра ошибок MVC-фильтра.
RouteConfig. cs-
Это используется для регистрации различных шаблонов маршрутов для вашего приложения Asp.Net MVC.
WebApiConfig. cs- Используется для регистрации различных маршрутов WEB API, таких как вход в систему с учетными данными внешнего провайдера, такого как Facebook, Twitter, Microsoft или Google,