我只是想把我的usercontrol函数更改为razor函数。但是使用razor函数的页面加载时间超过了usercontrol函数,任何人都可以知道为什么这个时间。我的剃刀代码
@inherits RazorFunction
@using System.Linq;
@using Composite.Data;
@using Atc.Data;
@using System.Web.UI.WebControls;
@using System.Collections.Generic;
@functions {
public override string FunctionDescription
{
get { return "Function for footer"; }
}
}
<ul>
<li>@@Copyright 2012 </li>
@{
using(DataConnection dCon =new DataConnection())
{
SitemapNavigator sn = new SitemapNavigator(dCon);
PageNode p = sn.CurrentHomePageNode;
List<PageNode> hiddenPages = dCon.Get<Page_Settings>()
.Where(x => x.FooterNavVisibility == true).OrderBy(x => x.Position)
.Select(x => sn.GetPageNodeById(x.PageId))
.ToList<PageNode>();
foreach (var item in hiddenPages)
{
<li><a href="@item.Url">@item.Title</a></li>
}
}
}
<li>
<!-- AddThis Button BEGIN -->
<div class="addthis_toolbox addthis_default_style ">
<a href="#" class="share"></a>
<a class="addthis_button_compact"></a>
<a class="addthis_counter addthis_bubble_style"></a>
</div>
</li>
</ul>
<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-5008fecf0e8dcc29"></script>
答案 0 :(得分:1)
可能是实际UserControl的执行时间计入了行&#34; ASP.NET控件:PageLoad,EventHandling,PreRender&#34;,目前需要91毫秒。
旁注:现在需要创建新的DataConnection / SitemapNavigator对象 - &gt;剃刀函数的基类上有Data和SitemapNavigator属性。
如果你想优化它,你可以f.e.缓存&#34; hiddenPages&#34;页面或页面设置数据类型更改中的变量和清除缓存。