扩展字段
站点扩展字段
引入站点服务和获取站点扩展字段信息
@inject SiteExtendFieldService SiteExtendFieldService
@{
var currentSite = this.Context.GetCurrentSite();
var extendFields = SiteExtendFieldService.GetAll().ToList();// 站点没有维护模型,所以取全部扩展字段也行
currentSite.ExtendContentObject.InitExtendContent(extendFields, currentSite.ExtendContent);// 注入扩展字段
}
循环获取所有扩展字段内容
<ul class="site-extend-list">
@foreach(var item in extendFields)
{
if (currentSite.ExtendContentObject.ContainsKey(item.ExtendFieldName)){
<li>
<span>字段显示名称:@item.ExtendFieldDisplayName</span>
<span>字段名称:@item.ExtendFieldName</span>
<span>字段值:@currentSite.ExtendContentObject[item.ExtendFieldName]</span>
</li>
}
}
</ul>
指定某个扩展字段内容获取
<!-- []里面填写站点扩展字段名称 -->
@currentSite.ExtendContentObject["indexbanner"]
节点扩展字段
@inject NodeService NodeService
@inject NodeExtendFieldService NodeExtendFieldService
@{
var nodeService = NodeService;
Node node = ViewBag.node;
if(ViewContext.RouteData.Values["area"].ToString().Contains("ContentManage")){
if(Model is Node){
node=Model;
}
else{
node=Model.Node;
}
}
var nodeInfo = nodeService.GetAncestorNode(node, 1);
// 筛选这个节点的扩展字段数据。
var extendField = NodeExtendFieldService.GetAll();//获取全部节点扩展字段
nodeInfo.ExtendContentObject.InitExtendContent(extendField, nodeInfo.ExtendContent);// 给nodeInfo注入扩展字段
}
使用案例
var nodeImg = null;
@if (!string.IsNullOrEmpty(nodeInfo.ExtendObject.banner)){
nodeImg ="background-image: url('"+Power.ToUrl(nodeInfo.ExtendObject.banner)+"')";
}
内容模型扩展字段
待补充