在web开发中经常会遇到在内部代码中获取Html,这些Html是需要和数据进行一起渲染。并不是直接把Html代码返回给客户端。这样的做法有很多应用场景,例如分页、Ajax一次性获取几段Html片段、生成邮件发送模板、生成Html静态页面等等。比较简单的或者容易想到的做法就是直接拼接Html,当然这肯定不是最合适的做法。
应用场景
1、在分页中,有一种做法是用ajax获取table的html代码和一些分页信息的Json
var json = { "table": "<table><tr/><td>1</td></tr></table>", "pageSize": 10, "currentIndex": 1, "count": 100 }
2、Ajax一次性获取几段Html片段
var json = { "leftHtml": "<div><h1>HHHHHHHHHH</h1></div>", "rightHtml": "<table><tr/><td>1</td></tr></table>" }
3、生成邮件发送模板、生成Html静态页面
我们经常会生成一些邮件模板,比如推广一些产品的html代码。
生成Html静态页面就更加常用了。
应用场景分析
我们这些应用都是在内部代码中生成html,然后在对html代码进行处理,比如拼接成json,或者发送邮件,在或者生成静态html页面。
生成Html在asp.net中莫过于Razor引擎,总之就是很好用,语法也很强大,如果我们把需要生成的html用Razor引擎生成岂不是很好,如果熟悉asp.net mvc 管道的话就可以很简单的解决这个问题。
1、查找View(cshtml)
可以用ViewEngines.Engines.FindView查找View。
public virtual ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName);
FindView需要Control