加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Composite C1 – 访问razor函数中的全局数据类型

发布时间:2020-12-15 22:01:08 所属栏目:百科 来源:网络整理
导读:我一直在尝试实现在复合c1站点中显示全局数据类型的函数. 我理解基本的剃刀功能如何工作,但他们似乎只使用本地数据.我期待创建一个剃刀函数,访问和过滤(以类似于可视化函数可用的DataReferenceFilter的方式)我为员工BIOS创建的全局数据类型,以便我可以在整个
我一直在尝试实现在复合c1站点中显示全局数据类型的函数.

我理解基本的剃刀功能如何工作,但他们似乎只使用本地数据.我期待创建一个剃刀函数,访问和过滤(以类似于可视化函数可用的DataReferenceFilter的方式)我为员工BIOS创建的全局数据类型,以便我可以在整个站点的多个页面上显示此信息.

我已经能够创建一个实现此功能的视觉功能,但这些功能与手动编辑的样式不相符.

这是使用本地数据直接输入函数的函数布局:

@inherits RazorFunction

    @functions {
        public override string FunctionDescription
        {
            get  { return "A people widget that diaplays a picture,name and small bio of a team member"; }
        }

    [FunctionParameter(Label = "Name",Help = "Input the persons name here",DefaultValue = "Firstname Lastname")]
    public string Name { get; set; }

    [FunctionParameter(Label = "Position",Help = "Input the persons position here",DefaultValue = "Manager")]
    public string Position { get; set; }

    [FunctionParameter(Label = "Qualifications",Help = "Input the persons qualifications here",DefaultValue = "University of Newcastle")]
    public string Qualifications { get; set; }

    [FunctionParameter(Label = "Bio",Help = "Input the persons biography snippit here",DefaultValue = "Input bio snippit here")]
    public string Bio { get; set; }

    [FunctionParameter(Label = "Image",Help = "Select the image to be used by this people widget")]
    public DataReference<IMediaFile> ImageSource { get; set; }
}

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://www.composite.net/ns/function/1.0">
    <head>
    </head>
    <body>
        <div class="peoplebox">
            <div class="peopleimg">
                <img src="~/media({@ImageSource.Data.Id})" alt="..." />
            </div>
            <p class="peoplename">@Name</p>
            <p><i>@Position</i></p>
            <h5>@Qualifications</h5>
            <div class="blockquote">
                <p>@Bio</p>
            </div>
        </div>
    </body>
</html>

The page似乎指向正确的方向,但我不确定如何将其整合到剃刀功能中.

解决方法

您可以在Razor函数中使用Data属性.一个小例子是这样的

@{
    var employees = Data.Get<INameOfYouDataType>().Where(m => ... some filter);

    foreach (var employee in employees)
    {
        <div class="peopleimg">
            <img src="~/media({@employee.Id})" alt="..." />
        </div>
        <p class="peoplename">@employee.Name</p>
        <p><i>@employee.Position</i></p>
        <h5>@employee.Qualifications</h5>
        <div class="blockquote">
            <p>@employee.Bio</p>
        </div>    
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读