umbraco学习8:macro参数

macro的参数主要是针对.net macros而言,结合参数我们可以创建更加灵活的.net macros,笔者将参照umbraco官网上提供一个介绍macro参数的例子,来简单介绍下macro参数的使用。

首先创建一个名为DemoParameters的用户控件,控件包括两个属性:DefaultValue和DefaultPageId,DemoParametersControl.aspx的代码如下:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DemoParametersControl.ascx.cs" Inherits="starterKit.DemoParametersControl" %>
<div id="demoParametersContainer">
    <div id="demoParametersHeader">
        <h1>macro参数使用举例</h1>
    </div>
    <div id="demoParametersContent">
        <span>Default Value: </span>
        <asp:Literal ID="litDefaultValue" runat="server"></asp:Literal>
        <span>Default Page ID: </span>
        <asp:Literal ID="litDefaultPageId" runat="server"></asp:Literal>
    </div>
</div>

后台代码DemoParametersControl.aspx.cs的代码如下:

  public partial class DemoParametersControl : System.Web.UI.UserControl
    {
        public string DefaultValue { get; set; }

        public int DefaultPageId { get; set; }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(DefaultValue))
            {
                litDefaultValue.Text = DefaultValue;
            }
            else 
            {
                litDefaultValue.Text = "No default value has been passed";
            }

            if (DefaultPageId > 0)
            {
                litDefaultPageId.Text = DefaultPageId.ToString();
            }
        } 
    }

因为之前已经设置了编译后事件,所以编译成功后,相关文件已经拷贝到站点的相应目录下。创建一个名为Demo Parameters的macro,并设置相应的.net用户控件,如下图所示:


保存后,可以在user control一行下看到Browse Properties按钮,点击该按钮,可以看到用户控件中定义的两个公共属性,对应于macro的的参数,如下图所示:


点击save后,重新加载macro,在Parameters选项卡下可以看到对应的参数已经添加成功。在该选项卡下可以添加和删除参数。可以看到每个参数对应三个属性,分别为别名(Alias)、名称(Name)和类型(Type)。其中别名的命名必须和用户控件中定义的公共属性的命名一致,名称和类型已经给出了默认值,但是可以做相应的改动。改动后如下图所示:


为了测试我们创建的macro,将新创建的macro插入到相应的Template中。选择Home Template,在相应的位置插入macro,选择工具栏中的Insert Macro,选择Demo Parameters后,将弹出设置参数的对话框,设置好相应的参数后,如下图所示:


点确认后,Home Template中插入Demo Parameters Macro的代码段如下:

<umbraco:Macro DefaultValue="测试Macro参数,这里输入的是默认值" DefaultPageId="1151" Alias="DemoParameters" runat="server"></umbraco:Macro>

我们还可以在代码中直接编辑相应的参数值,为了查看效果,打开home页面,如下图所示:


可以看到Demo Parameters Macro添加成功。除了我们设置的参数之外,参数的值也可以为节点的属性值或浏览器中URL中包含的属性值,例如我们把插入的macro的代码修改如下:

<umbraco:Macro DefaultValue="[#pageTitle]" DefaultPageId="[@pid]" Alias="DemoParameters" runat="server"></umbraco:Macro>
在浏览器地址后添加pid属性http://localhost/?pid=345,打开页面可以看到相应的参数值如下图所示:



关于.net macros,笔者就先介绍到这里,接下来几节笔者将介绍xslt macros。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值