Asp.net动态页面静态化之输出对象属性(实体关联)
2023-09-27 14:25:13 时间
Asp.net动态页面静态化之输出对象属性(实体关联)
模板引擎不单单能够输出单一的数据,还能直接输出对象的属性
using System; using System.Collections.Generic; using System.Linq; using System.Web; using NVelocity.Runtime; using NVelocity; using NVelocity.App; namespace czbk { /// <summary> /// Handler2 的摘要说明 /// </summary> public class Handler2 : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/html";//plain表示普通文本格式输出 静态化应该输出html格式文本 User user = new User(); user.Username = "王大锤"; user.Userphone = "18312345678"; Role role = new Role(); role.Roleid = "1001"; role.Rolename = "超级搞笑王"; user.User_Role1 = role;//给关联对象赋值 VelocityEngine vltEngine = new VelocityEngine(); vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file"); vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, System.Web.Hosting.HostingEnvironment.MapPath("~/"));//模板文件所在的目录 vltEngine.Init(); VelocityContext vltContext = new VelocityContext(); vltContext.Put("u", user);//设置參数。在模板中能够通过$u来引用 Template vltTemplate = vltEngine.GetTemplate("Users.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; } } } public class User { private string username; public string Username { get { return username; } set { username = value; } } private string userphone; public string Userphone { get { return userphone; } set { userphone = value; } } private Role User_Role;//引入一个关联的类对象 public Role User_Role1 { get { return User_Role; } set { User_Role = value; } } } public class Role { private string roleid; public string Roleid { get { return roleid; } set { roleid = value; } } private string rolename; public string Rolename { get { return rolename; } set { rolename = value; } } } }
前台代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </head> <body> <form action='Handler2.ashx'> 用户名:<input type="text" name='username' value='$u.username' /><br /> 用户电话:<input type="text" name='userphone' value="$u.userphone" /><br /> 用户角色名:<input type="text" name='userrolename' value="$u.User_Role1.rolename" /><br /> 用户角色名2:<input type="text" name='userrolename' value="$u.User_Role1.Rolename" /><br /> <span style="color:red;">可能是html不区分大写和小写 所以这时调用大写和小写都是能够的 欢迎大家指出错误</span> </form> </body> </html>
相关文章
- Akka.net 性能测试兼使用小技巧
- ADO.NET数据库应用开发_ExtendedProperties属性
- How to remove ASP.Net MVC Default HTTP Headers(secure header)?
- .NET压缩图片保存 .NET CORE WebApi Post跨域提交 C# Debug和release判断用法 tofixed方法 四舍五入 (function($){})(jQuery); 使用VUE+iView+.Net Core上传图片
- 【转】.NET(C#):浅谈程序集清单资源和RESX资源 关于单元测试的思考--Asp.Net Core单元测试最佳实践 封装自己的dapper lambda扩展-设计篇 编写自己的dapper lambda扩展-使用篇 正确理解CAP定理 Quartz.NET的使用(附源码) 整理自己的.net工具库 GC的前世与今生 Visual Studio Package 插件开发之自动生
- (六)Net Core项目使用Controller之一 c# log4net 不输出日志 .NET Standard库引用导致的FileNotFoundException探究 获取json串里的某个属性值 common.js 如何调用common.js js 筛选数据 Join 具体用法
- Word控件Spire.Doc 【文档操作】教程(七):在 C#、VB.NET 中从 URL 下载 Word 文档
- asp.net 框架初接触
- http://blog.csdn.net/linjingj/article/details/18881755
- 在ASP.NET MVC4中使用Quartz.NET执行定时任务
- ASP.NET MVC在服务端把异步上传的图片裁剪成不同尺寸分别保存,并设置上传目录的尺寸限制
- asp.net获取当前网址url
- .NET-DataColumn.DataType 属性
- 《ASP.NET 开发从入门到精通》----2.4 第一个ASP.NET程序
- 《.NET程序员面试秘笈》----面试题4 举例说明属性、get和set访问器的使用
- 发布ASP.NET Core程序到Linux生产环境
- ASP.NET Core中使用Autofac进行属性注入
- .Net 与 Javascript 混合编程系列
- 认识.net Framework