首页 新闻 会员 周边

小弟初学 NVelocity ,问个问题

0
悬赏园豆:5 [已解决问题] 解决于 2014-03-30 16:34

我将NVelocity 简单封装了一下,如下:

public static string NRenderHtml(string name, object data)
       {
           VelocityEngine vltEngine = new VelocityEngine();
           vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file");
           vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, System.Web.Hosting.HostingEnvironment.MapPath("~/templates"));//模板文件所在的文件夹
           vltEngine.AddProperty(RuntimeConstants.INPUT_ENCODING, "utf-8");
           vltEngine.AddProperty(RuntimeConstants.OUTPUT_ENCODING, "utf-8");
           vltEngine.Init();

           VelocityContext vltContext = new VelocityContext();
           vltContext.Put("Data", data);

           Template vltTemplate = vltEngine.GetTemplate(name);
           System.IO.StringWriter vltWriter = new System.IO.StringWriter();
           vltTemplate.Merge(vltContext, vltWriter);
           return vltWriter.GetStringBuilder().ToString();
       }


然后我在.cs文件 中这样赋值参数

protected void Page_Load(object sender, EventArgs e)
        {
            var data = new SiteConfig_bll().GetSiteConfig();
            Response.Write(RenderHtml.NRenderHtml("index.html", new { siteconfig = data }));
        }

,然后在模板文件中我就可以用$Data.siteconfig.SiteName来调用了。

这样的简单的应用没问题。

 

但是我们做网站的时候,数据都不会这么简单。

如在首页,我们有“最新新闻LastNews”,“热点新闻HotNews”,“推荐新闻RecommendNews”等,有可能会增加,也有可能会减少。

那我们不可能在后台所有情况都考虑到,有可能这次只要“最新新闻LastNews”,“热点新闻HotNews”,明天我改版了加了一个“推荐新闻RecommendNews”。

那这里的Data数据该如何动态来确定?

DZCMS的主页 DZCMS | 初学一级 | 园豆:5
提问于:2014-03-17 11:09
< >
分享
最佳答案
0

var
content=new {ListNews="1",HostNews="2"}; //通过匿名类来解决(我是这样解决) 模板页用进行判断
收获园豆:5
秋壶冰月 | 大侠五级 |园豆:5903 | 2014-03-17 11:31

如果需求是固定的,用var content=new {ListNews="1",HostNews="2"};这样就可以了,前台也就只能调用ListNews和HostNews这二个。如果在这个页面我要一个RecommendNews,那我怎么传给var content?

DZCMS | 园豆:5 (初学一级) | 2014-03-17 14:27

@abc54288: 模板页和后台取数据的页面都有修改

//假如recommendNews是后台取出的数据,和listviews不一起的
string recommendNews=bll.GetNews();
var  content=new {ListNews="1",HostNews="2",RecommendNews=recommendNews};
秋壶冰月 | 园豆:5903 (大侠五级) | 2014-03-17 18:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册