اختصاصی کردن Razor برای #C و VB در MVC
سه شنبه 10 تیر 1393اختصاصی کردن Razor برای #C و VB در MVC در این مقاله قصد داریم موتور Razor را اختصاصی کنیم یعنی یا فقط #C و یا از VB استفاده کنه ، با اینکار سرعت پروژه به میزان زیادی بالا خواهد رفت
سلام
در مقاله قبل با عنوان بالا بردن سرعت در MVC موفق شدیم با دستور زیر Engin مربوط به ASPX رو از کار بندازیم و سرعت برنامه را تا حد چشم گیری افزایش دهیم
ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new RazorViewEngine());
ولی متاسفانه همچنان دنبال View هایی با پسوند VB میگرده
در تصویر بالا میبینید که همچنان دنبال Index.vbhtml در دو مسیر میگرده
در این مقاله قصد داریم به Engin بگیم فقط دنبال View های cshtml بگرده
در مسیر App_Start یک کلاس با نام CSharpRazorViewEngine و کدهای زیر را در آن قرار دهید
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace ClearEnginVB_MVC.App_Start { public class CSharpRazorViewEngine : RazorViewEngine { public CSharpRazorViewEngine() { AreaViewLocationFormats = new[] { "~/Areas/{2}/Views/{1}/{0}.cshtml", "~/Areas/{2}/Views/Shared/{0}.cshtml" }; AreaMasterLocationFormats = new[] { "~/Areas/{2}/Views/{1}/{0}.cshtml", "~/Areas/{2}/Views/Shared/{0}.cshtml" }; AreaPartialViewLocationFormats = new[] { "~/Areas/{2}/Views/{1}/{0}.cshtml", "~/Areas/{2}/Views/Shared/{0}.cshtml" }; ViewLocationFormats = new[] { "~/Views/{1}/{0}.cshtml", "~/Views/Shared/{0}.cshtml" }; MasterLocationFormats = new[] { "~/Views/{1}/{0}.cshtml", "~/Views/Shared/{0}.cshtml" }; PartialViewLocationFormats = new[] { "~/Views/{1}/{0}.cshtml", "~/Views/Shared/{0}.cshtml" }; } } }
سپس به Global.asax رفته کد درج شده به شکل زیر ویرایش کنید
ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new CSharpRazorViewEngine());
همانطور که در تصویر میبینید فقط دنبال View هایی با پسوند cshtml میگرده و سرعت لود بازهم افزایش پیدا میکنه
نمونه هم ضمیمه شد
موفق باشید دوستان خوبم
- ASP.net MVC
- 2k بازدید
- 9 تشکر