Webforms:如何为给定的母版页指定不同的内容

时间:2016-03-30 15:05:45

标签: asp.net vb.net webforms

在ascx文件中给出这个标记:

        <div class="DocumentPara">
            <%#Eval("Content1").ToString%>
            <%#Eval("Content2").ToString%>
        </div>

我可以使用哪种语法来选择“Content1”和“Content2”的显示,具体取决于哪个主页正在调用?即:

        <div class="DocumentPara">
            <%#Eval("Content1").ToString%>
            <If masterpage1>
               <%#Eval("Content2").ToString%>
            </endIf>
            <If masterpage2>
               <%#Eval("Content3").ToString%>
            </endIf>
        </div>

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

页面的母版页可以通过Master属性访问,因此要检查正在使用的特定母版页,您可以执行类似

的操作
if (this.Master is Master1Type)

if/else语法也是可能的,如下所示:

<% if (this.Master is Master1Type) { %>
    <%#Eval("Content2").ToString%>
<% }
else { %>
    <%#Eval("Content3").ToString%>
<% } %>

然而,这对我来说看起来很脏,并且在页面标记内有条件似的这种情况并不常见。我建议在代码后面定义一个函数来处理masterpages逻辑,并从数据项中输出必要的值:

<%# GetContent(Container.DataItem) %>

protected string GetContent(object dataItem)
{
    if (this.Master is Master1Type)
    {
        return Eval("Content2");
    }
    // etc
}