$ViewData.User.Name<br />
</body>
</html>

当然,我们也可以将其注册成默认视图引擎,免得每次要创建 IView 传递给 View()。

public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new NVelocityViewEngine());

RegisterRoutes(RouteTable.Routes);
}
}

或者写一个 IResultFilter,标注在需要使用 NVelocityViewEngine 的 ActionMethod 上。

public class NVelocityViewAttribute : ActionFilterAttribute
{
public NVelocityViewAttribute()
{
}

public NVelocityViewAttribute(string viewPath)
{
this.ViewPath = viewPath;
}

public string ViewPath { get; set; }

public override void OnResultExecuting(ResultExecutingContext filterContext)
{
if (String.IsNullOrEmpty(ViewPath))
{
foreach (var ext in new[] { "html", "htm" })
{
ViewPath = String.Format("~/Views/{0}/{1}.{2}",
filterContext.RouteData.GetRequiredString("controller"),
filterContext.RouteData.GetRequiredString("action"),
ext);

if (System.IO.File.Exists(HttpContext.Current.Server.MapPath(ViewPath))) break;
}
}

var result = filterContext.Result as ViewResult;

if (result != null)
{
result.View = new NVelocityView(filterContext, ViewPath);
}
}
}

现在使用起来更加方便了。

[NVelocityView]
public ActionResult Index()
{
ViewData["user"] = new
{
Name = "Tom",
Age = 13
};

return View();
}

还可以手工指定一个模板。

[NVelocityView("/Views/Test/Index2.htm")]
public ActionResult Index()
{
ViewData["user"] = new
{
Name = "Tom",
Age = 13
};

return View();
}

文章源自:烈火网,原文:http://zhan.liehuo.net/a/200908/207790.html

转载于:https://www.cnblogs.com/silverLee/archive/2009/10/29/1592394.html

ASP.NET MVC 1.0 NVelocityViewEngine相关推荐

  1. 一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序 - 强烈推荐!!!

    一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序 本文根据<Professional ASP.NET MVC 1.0>中微软牛人Scott Guthrie 提供 ...

  2. 从零开始学习 ASP.NET MVC 1.0 (三) Controller/Action 深入解析与应用实例 【转】

    一.摘要 一个Url请求经过了Routing处理后会调用Controller的Action方法. 中间的过程是怎样的? Action方法中返回ActionResult对象后,如何到达View的? 本文 ...

  3. 返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 Web API

    返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 Web API 原文:返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 ...

  4. ASP.NET MVC 1.0 RC 版发布了【转】

    [原文地址]ASP.NET MVC 1.0 Release Candidate Now Available [原文发表日期] Tuesday, January 27, 2009 12:13 PM 今天 ...

  5. ASP.NET MVC 3.0学习系列文章—Model in ASP.NET MVC 3.0

    系列文章 ASP.NET MVC 3.0学习系列文章-序 ASP.NET MVC 3.0学习系列文章--Razor and ASP.NET MVC 3.0 ASP.NET MVC 3.0学习系列文章- ...

  6. ASP.NET MVC 3.0学习系列文章--Razor and ASP.NET MVC 3.0

    系列文章 ASP.NET MVC 3.0学习系列文章-序 Razor and ASP.NET MVC 3.0 ASP.NET MVC 3.0学习系列文章-Controllers in ASP.NET ...

  7. Asp.net MVC 1.0 RTM中实现文件上传

    Asp.net MVC 1.0 RTM中实现文件上传 在我们开始之前,你需要知道一个form以post方式上传文件的方式,你将要增加一个特别的enctype attribute到form标签上,为了这 ...

  8. 《从零开始学习ASP.NET MVC 1.0》-开天辟地入门篇

    <从零开始学习ASP.NET MVC 1.0> 文章导航 (一) 开天辟地入门篇 (二) 识别URL的Routing组件 (三) Controller/Action 深入解析与应用实例 ( ...

  9. ASP.NET MVC 1.0 Result 几何?

    Action的返回值类型到底有几个?咱们来数数看. ASP.NET MVC 1.0 目前一共提供了以下十几种Action返回结果类型: 1.       ActionResult(base) 2.   ...

最新文章

  1. iOS 关于Blocks
  2. servlet增删改查实例_SpringBoot系列(2)整合MongoDB实现增删改查(完整案例)
  3. 5.数字拆分成4段,怎样使得4段的乘积最小【dp】
  4. 用计算机怎么开5次方,用科学计算器来求三的五次方的值,按键顺序是( )?
  5. 逻辑分析推理(五小姐问题)
  6. NYOJ 679 贪婪的商店
  7. asp.net中创建一个简单的自定义控件
  8. lamba List 转 Map
  9. Springboot 添加server.servlet.context-path
  10. windows 2008 R2 如何更新SID
  11. mongodb、mysql、redis的性能对比
  12. Canvas里的globalCompositeOperation
  13. 自定义Dialog的小实战——根据地区选择手机号码前缀
  14. 光电自动避障小车_凌鸟智能总结了一下激光导航反射板AGV小车的优缺点!
  15. 灭霸一个响指,开源众包出现在开源中国的社区APP里,一键接单从此无忧。
  16. 雷声大雨点小,廖翔廖翔你真diao
  17. 将腾讯云对象存储挂载到云服务器
  18. v4l2架构专题模块handler分析 --- handler的初始化及handler ctrl注册
  19. 0.96寸OLED屏使用详解
  20. 常用颜色的RGB值及调色方法

热门文章

  1. 非线性方程求根的牛顿法
  2. 字典创建列表的2种方法,作业
  3. iOS下的 Fixed BUG
  4. bzoj4830 hnoi2017 抛硬币
  5. 【工具方法util】JAVA中将一个List等分成n个list的
  6. 两个port贴合七夕主题,百度输入法的“情感营销”策略
  7. 说说Request.Params[key]和Request[key]
  8. bootstrap基础学习四篇
  9. hdu 3732(01背包转多重背包)
  10. cmd看excel有多少个子表_快看!杭州各区5月房价表出炉!现在买套房要多少钱?...