1、C# MVC学习之NVelocity基本使用

小白一个,刚刚开始学,大神不要笑话。。。。。。

NVelocity是一个很容易上手的框架,从它开始学习,可以循序渐进

首先,创建空web应用程序,新建一般处理程序 Login2.ashx

然后,引入NVelocity,

     c

创建Html 页面login.htm,实现登录框架

    NVelocity语法是$开头

   

<html>
<head></head>
<body>
    <strong><font color='green'>登录</font></strong>
    <form action='Login2.ashx'>
    <input type='text' name='username' value='$username'/>
    <input type='password' name='password' value='$password' />
    <input type='submit' value='登录'/>
    </form>
    <p>$msg</p>
</body>
</html>

编写Login2.ashx.cs页面,使用NVelocity处理请求

public class Login2 : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";
            string username = context.Request["username"];
            string password = context.Request["password"];
            if (string.IsNullOrEmpty(username) && string.IsNullOrEmpty(password))
            {
                VelocityEngine vltEngine = new VelocityEngine();
                vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file");
                vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, System.Web.Hosting.HostingEnvironment.MapPath("~/templates"));//模板文件所在的文件夹
                vltEngine.Init();

                VelocityContext vltContext = new VelocityContext();
                vltContext.Put("username", "");//设置参数,在模板中可以通过$data来引用
                vltContext.Put("password", "");
                vltContext.Put("msg", "");
                Template vltTemplate = vltEngine.GetTemplate("login.htm");
                System.IO.StringWriter vltWriter = new System.IO.StringWriter();
                vltTemplate.Merge(vltContext, vltWriter);

                string html = vltWriter.GetStringBuilder().ToString();
                context.Response.Write(html);
            }
            else
            {
                if (username == "admin" && password == "123")
                {
                    context.Response.Write("登录成功");
                }
                else
                {
                    VelocityEngine vltEngine = new VelocityEngine();
                    vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file");
                    vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, System.Web.Hosting.HostingEnvironment.MapPath("~/templates"));//模板文件所在的文件夹
                    vltEngine.Init();

                    VelocityContext vltContext = new VelocityContext();
                    vltContext.Put("username", username);//设置参数,在模板中可以通过$data来引用
                    vltContext.Put("password", password);
                    vltContext.Put("msg", "用户名或者密码错误");

                    Template vltTemplate = vltEngine.GetTemplate("login.htm");
                    System.IO.StringWriter vltWriter = new System.IO.StringWriter();
                    vltTemplate.Merge(vltContext, vltWriter);

                    string html = vltWriter.GetStringBuilder().ToString();
                    context.Response.Write(html);
                }
            }
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }

 NVelocity的强大之处不仅仅这些,它还可以对 对象的属性进行赋值,看下面的例子

     

<html><head></head><body>
$p.Name
<p>我的老爹是 $p.Father.Name,他的年龄是$p.Father.Age </p>
</body></html>

后台处理程序:

context.Response.ContentType = "text/html";

            Person person = new Person();
            person.Name = "张三";
            person.Age = 30;
            Person dad = new Person();

            dad.Name = "张三的爹";
            dad.Age = 60;

            person.Father = dad;

            VelocityEngine vltEngine = new VelocityEngine();
            vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file");
            vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, System.Web.Hosting.HostingEnvironment.MapPath("~/templates"));//模板文件所在的文件夹
            vltEngine.Init();

            VelocityContext vltContext = new VelocityContext();
            vltContext.Put("p", person);//设置参数,在模板中可以通过$data来引用
            Template vltTemplate = vltEngine.GetTemplate("test.htm");
            System.IO.StringWriter vltWriter = new System.IO.StringWriter();
            vltTemplate.Merge(vltContext, vltWriter);

            string html = vltWriter.GetStringBuilder().ToString();
            context.Response.Write(html);

 代码下载地址:http://download.csdn.net/detail/murongqingsi/9156661

NVelocity下载地址:http://download.csdn.net/detail/murongqingsi/9156623

 

转载于:https://www.cnblogs.com/lastcode/p/4855331.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值