asp.net mvc 使用nvelocity替换razor
2018-03-24 14:28
375 查看
看清楚标题呀 是nvelocity替换razor
创建视图类
创建引擎类
在Global.asax中清楚原有引擎 添加自己的即可
背景
我也不知道出于什么考虑,可能是老大说后期要弄到java平台上 然后视图页不要用Razor了。所以就让我用Nvelocity去替换原有的razor。简单实现
创建一个引擎管理类public class VelocityManager { public static VelocityManager Instance; public VelocityEngine Engine; static VelocityManager() { Instance = new VelocityManager(); } private VelocityManager() { Engine = new VelocityEngine(); Engine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file"); string baseDirectory = AppDomain.CurrentDomain.BaseDirectory.Replace("\\", "/"); Engine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, baseDirectory + "/Views"); Engine.Init(); } }
创建视图类
public class NVelocityView : IView { private string viewPath; public NVelocityView(string viewPath) { this.viewPath = viewPath.Replace("~/Views", "/"); } public void Render(ViewContext viewContext, TextWriter writer) { RouteData data = viewContext.Controller.ControllerContext.RouteData; Template vltTemplate = VelocityManager.Instance.Engine.GetTemplate(viewPath); VelocityContext vltContext = new VelocityContext(); vltContext.Put("control", viewContext.ViewBag.control ?? new object()); vltTemplate.Merge(vltContext, writer); } }
创建引擎类
public class NVolocityViewEngine : BuildManagerViewEngine { public NVolocityViewEngine() : base() { ViewLocationFormats = new[] { "~/Views/{1}/{0}.cshtml", "~/Views/Shared/{0}.cshtml", "~/CustomViewLocation/{1}/{0}.cshtml", "~/CustomViewLocation/{1}/{0}.vm" }; } protected override IView CreatePartialView(ControllerContext controllerContext, string partialPath) { return new NVelocityView(partialPath); } protected override IView CreateView(ControllerContext controllerContext, string viewPath, string masterPath) { return new NVelocityView(viewPath); } }
在Global.asax中清楚原有引擎 添加自己的即可
protected void Application_Start() { ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new NVolocityViewEngine()); AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); }
相关文章推荐
- ASP.NET MVC 中使用 IView.Render 来呈现 WebFormView 、RazorView 中的内容
- ASP.NET MVC 3 Beta: Built-in support for charts(MVC3 Razor中使用图表的最佳方案)
- Pro ASP.NET MVC –第五章 使用Razor
- 逃脱Asp.Net MVC框架/枷锁,使用Razor视图引擎
- Asp.net MVC 3 Razor视图引擎的使用(一)
- ASP.NET MVC (Razor)开发<<周报与绩效考核系统>>,并免费提供园友们使用~~~
- ASP.NET MVC 3 Beta: Built-in support for charts(MVC3 Razor中使用图表的最佳方案)
- Asp.net2005 使用 NVelocity 实现 MVC
- Pro ASP.NET MVC –第五章 使用Razor
- ASP.NET MVC 3 Beta: Built-in support for charts(MVC3 Razor中使用图表的最佳方案)
- ASP.NET MVC 5 (六-2) 使用Razor表达式
- 在ASP.NET MVC(Razor)中使用avalon2.x,@字符冲突的不靠谱解决方案
- ASP.NET MVC 3 Razor 中的 @helper 特性的使用例子
- 逃脱Asp.Net MVC框架/枷锁,使用Razor视图引擎
- asp.net mvc页面javascript代码中如何使用razor
- ASP.NET MVC 使用 nVelocity 视图模板引擎
- ASP.NET MVC 3 Beta: Built-in support for charts(MVC3 Razor中使用图表的最佳方案)
- ASP.NET MVC 3 Beta: Built-in support for charts(MVC3 Razor中使用图表的最佳方案)
- ASP.NET MVC 3 Beta: Built-in support for charts(MVC3 Razor中使用图表的最佳方案)