اختصاصی کردن Razor برای #C در MVC با استفاده از Extension Method
نویسنده: محمد محمدصادقی
تاریخ: ۱۳۹۳/۰۴/۲۵ ۱۳:۱۰
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
namespace ApplicationTest01.Utilities
{
public class StringHelper
{
}
} namespace ApplicationTest01.Utilities
{
public class StringHelper
{
public string StringConcatenate(string firstPhrase, string secondPhrase)
{
return firstPhrase + secondPhrase;
}
}
} namespace System
{
public static class StringHelper
{
public static string StringConcatenate(string firstPhrase, string secondPhrase)
{
return firstPhrase + secondPhrase;
}
}
} namespace System
{
public static class StringHelper
{
public static string StringConcatenate(this string firstPhrase, string secondPhrase)
{
return firstPhrase + secondPhrase;
}
}
} public ActionResult Index()
{
"1234".StringConcatenate("567");
string s1 = "dotnet";
string s2 = "tips";
s1.StringConcatenate(s2);
return View();
} namespace System.Web.Mvc
{
public static class EngineFilter
{
public static RazorViewEngine DisableVbhtml(this RazorViewEngine engine)
{
return engine;
}
}
} namespace System.Web.Mvc
{
public static class EngineFilter
{
public static RazorViewEngine DisableVbhtml(this RazorViewEngine engine)
{
return engine;
}
private static string[] FilterOutVbhtml(string[] source)
{
return source.Where(s => !s.Contains("vbhtml")).ToArray();
}
}
} namespace System.Web.Mvc
{
public static class EngineFilter
{
public static RazorViewEngine DisableVbhtml(this RazorViewEngine engine)
{
engine.AreaViewLocationFormats = FilterOutVbhtml(engine.AreaViewLocationFormats);
engine.AreaMasterLocationFormats = FilterOutVbhtml(engine.AreaMasterLocationFormats);
engine.AreaPartialViewLocationFormats = FilterOutVbhtml(engine.AreaPartialViewLocationFormats);
engine.ViewLocationFormats = FilterOutVbhtml(engine.ViewLocationFormats);
engine.MasterLocationFormats = FilterOutVbhtml(engine.MasterLocationFormats);
engine.PartialViewLocationFormats = FilterOutVbhtml(engine.PartialViewLocationFormats);
engine.FileExtensions = FilterOutVbhtml(engine.FileExtensions);
return engine;
}
private static string[] FilterOutVbhtml(string[] source)
{
return source.Where(s => !s.Contains("vbhtml")).ToArray();
}
}
} ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new RazorViewEngine().DisableVbhtml());
protected void Application_Start() {
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new RazorViewEngine());
...
} protected void Application_Start()
{
ViewEngines.Engines.Clear();
var veiwEngine = new RazorViewEngine();
veiwEngine.FileExtensions = new string[] { "cshtml" };
ViewEngines.Engines.Add(veiwEngine);
....
}
در تصویر بالا razor جلوی Lookuping پسوندهای vbhtml رو نگرفته. لطفا شما هم امتحان کنید ببینید خروجی دیگه ای میگیرید یا همین خروجی برای شما هم میاد؟