繁体   English   中英

在Umbraco中使用C#进行简单检查

[英]Making a simple check in C# in Umbraco

我想检查某个东西是否是整数,所以如果它是8,则将一个特定的值分配给一个变量,如果不是,则将另一个变量赋值,非常简单,但是我得到了一个错误?

var getColor = umbraco.presentation.nodeFactory.Node.GetCurrent().GetProperty("textColor" + i).Value;
                if (getColor == 8)
                {
                    var color = "black";
                }
                else
                {
                    var color = "white";
                } 

然后我想将HTML中的变量作为类打印出来:

<div class="headline <% color %>"></div>

整个代码如下:

<div class="slides" onmouseleave="startSlider();">
            <%for(int i = 1; i < 5; i++) { %>
            <%

                var getColor = umbraco.presentation.nodeFactory.Node.GetCurrent().GetProperty("textColor" + i).Value;
                if (getColor == "8")
                {
                    var color = "black";
                }
                else
                {
                    var color = "white";
                } 
            %>
                <%if(umbraco.presentation.nodeFactory.Node.GetCurrent().GetProperty("image"+ i).Value != "") {%>
                    <div class="slide" id="slide<%=i%>" onclick="location.href = '<%=umbraco.library.NiceUrl(int.Parse(umbraco.presentation.nodeFactory.Node.GetCurrent().GetProperty("link"+ i).Value))%>';" style="display:<%if(i != 1){%>none<%}%>;" tmpcolor="<%=umbraco.presentation.nodeFactory.Node.GetCurrent().GetProperty("backgroundColor"+ i).Value%>">
                    <div class="image" id="image<%=i%>" style="background: url(<%=umbraco.presentation.nodeFactory.Node.GetCurrent().GetProperty("image"+ i).Value%>) center center;"></div>
                    <div class="headline <%=color%>"><%=umbraco.presentation.nodeFactory.Node.GetCurrent().GetProperty("headline"+ i).Value%></div>
                    <div class="subline"><%=umbraco.presentation.nodeFactory.Node.GetCurrent().GetProperty("subline"+ i).Value%></div>
                    <div class="menuitems">
                        <%for(int y = 1; y < 5; y++) { %>
                            <%if(umbraco.presentation.nodeFactory.Node.GetCurrent().GetProperty("menutext"+ y).Value != "") {%><span class="item<%if(i==y){%> selected<%}%>" onmouseover="gotoSlide(<%=y%>);"><a title="<%=umbraco.presentation.nodeFactory.Node.GetCurrent().GetProperty("headline"+ i).Value%>" href='<%=umbraco.library.NiceUrl(int.Parse(umbraco.presentation.nodeFactory.Node.GetCurrent().GetProperty("link"+ y).Value))%>'><%=umbraco.presentation.nodeFactory.Node.GetCurrent().GetProperty("menutext"+ y).Value%></a><br/></span><%}%>
                        <%}%>
                    </div>
                </div>
                <%}%>
            <%}%>
        </div>

我得到的错误是“不在当前上下文中着色”

值返回一个字符串,该字符串取决于您用于文档类型属性的数据类型。 因此,您不能说“ getColor == 8”。

这是我在.master或.aspx页面上的测试环境中工作的一些摘要。

<script runat="server">
    string GetColorClass()
    {
        var color = umbraco.NodeFactory.Node.GetCurrent().GetProperty("textColor1").Value;
        color = color == null ? string.Empty : color;
        switch (color)
        {
            case "8":
                return "black";
            default:
                return "white";
        }
    }
</script>

<div class="<% =GetColorClass() %>">
    <h3>Cool It Works!</h3>
</div>

现在,还要注意,我使用的是<%= ...,而您使用的是<%。

<%%> =内联代码(不向响应中插入任何内容,仅执行内联代码)<%$%> =用于使用在web.config中注册的表达式构建器之一评估表达式...

<%=%>:response.write的简写(这是您想要的,因为它将在遇到的地方将输出插入响应中,例如在class =“属性上。

有关这些内容的更完整列表,请参阅我从中获取的帖子, <%$,<%@,<%=,<%#...。这是怎么回事?

我还使用了另一个名称空间中的节点工厂,您从中访问它的名称空间已被标记为过时,可以从将来的版本中删除。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM