怎么在ASP.NET WebForm中使用Razor视图引擎(转载)
2011-07-30 21:11 麦舒 阅读(3998) 评论(1) 编辑 收藏 举报前几天微软发布了一堆新技术,详见ScottGu的博客:
Announcing release of ASP.NET MVC 3, IIS Express, SQL CE 4, Web Farm
Framework, Orchard, WebMatrix
http://weblogs.asp.net/scottgu/archive/2011/01/13/announcing-release-of-asp-net-mvc-3-iis-express-sql-ce-4-web-farm-framework-orchard-webmatrix.aspx
让人特别感兴趣的是ASP.NET MVC 3和WebMatrix中的Razor视图引擎,其简洁明了的句法给人以耳目一新的感觉,ScottGu对它做了很多介绍,详见上面链接中有关Razor部分的内容和链接。
但这些介绍基本上是围绕着ASP.NET MVC 3来进行的,在WebForm中是否能够用它来渲染视图呢?可以的,这里做一个简单的示范:
安装ASP.NET MVC 3,在你的web应用中添加对System.Web.WebPages程序集的引用。
在项目中添加一个.cshtml文件(假定你的项目是基于C#的),在这里我生成了一个weibo.cshtml,其中的内容为:
欢迎去 @Model.Name 的新浪微博 <a href=”@Model.URL”>@Model.URL</a> 拍砖!
所用的Model是一个自定义类:
public class UserInfo
{
public string Name { get; set; }
public string URL { get; set; }
}
在你Page的HTML中加一个Panel:
<asp:Panel ID=”pnlContent” runat=”server” />
然后在Page_Load方法中,
var model = new UserInfo { Name = “思归”, URL = “http://t.sina.com.cn/timeflieslikeanarrow” };
var path = System.IO.Path.Combine(Request.ApplicationPath,
“weibo.cshtml”);
var type = BuildManager.GetCompiledType(path);
System.Diagnostics.Debug.Assert(type != null);
var script = Activator.CreateInstance(type) as System.Web.WebPages.WebPage;
System.Diagnostics.Debug.Assert(script != null);
var writer = new System.IO.StringWriter();
script.ExecutePageHierarchy(new System.Web.WebPages.WebPageContext(new
System.Web.HttpContextWrapper(HttpContext.Current),
null, //rendering page
model),
//model
writer);
pnlContent.Controls.Add(new LiteralControl(writer.ToString()));
运行该网页,你会看到这样的输出:
欢迎去 思归 的新浪微博 http://t.sina.com.cn/timeflieslikeanarrow 拍砖!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述