SiteAzure1.4广告版位焦点图如果限制显示数量
在目前的SiteAzure1.4系统中,系统默认提供的广告版位读取方法中缺少了显示数量的限制,但很多时候我们在输出时为了保证前台显示不错位,往往都会限制显示数量,没有这个参数确实不方便,那么有没有解决办法?答案是:有的!
方法一:使用Razor的条件语句来实现
SiteAzure所使用的视图引擎是“Razor”,那么我们可以利用 Razor 的代码来进行限制,具体方法如下:
首先,我们要建立一下变量
int Count = Param.Count ?? 5; // 输出数量
由于默认就有两个index自增的值,所以就不用再建了,直接利用它就要以了。
然后,我们在对应的循环体内通过 if 来判断是否输出内容,要注意的是,视图里面使用了两处循环,所以这里不能用 return,不然另外一个循环就出不来了;
if的添加方法参考上图就可以了,这个就不用解释
方法二:使用SQL语句来实现
在SiteAzure的视图里,我们可以通过 DbSet.SqlQuery 方法来写入数据库语法,考虑到了SQL注漏洞的安全问题,视图文件中建议尽量少用此方法。
首先,和方法一一样,建立 Count 变量。
把原来的
var advertisements = new AdvertisementService().GetAdvertisementsBySpaceId(advertisementSpaceId, Sort);
改为
var advertisements = new AdvertisementService().DbSet.SqlQuery("select top " + Count +" * from PE_Advertising_Advertisement AA left join PE_Advertising_AdvertisementAdvertisementSpace AAAS on AA.AdvertisementId = AAAS.AdvertisementId where AdvertisementSpaceId = " + advertisementSpaceId + " and SiteId = " + SiteContext.Current.SiteId);
(如果想保留原来的 advertisements ,把这段代码注释掉也行)
然后,就没然后了...(对就这么简单)
用户登录
还没有账号?
立即注册