在Umbraco中对C#进行简单的检查

本文关键字:简单 检查 Umbraco 中对 | 更新日期: 2023-09-27 18:27:08

我想检查某个东西是否是整数,所以如果它是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>

我得到的错误是"颜色不在当前上下文中"

在Umbraco中对C#进行简单的检查

Value返回一个字符串,该字符串取决于文档类型属性所使用的数据类型。因此,您不能说"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="attribute.上

要获得更完整的列表,请参阅我的帖子,<%$<%@<%=<%#。。。什么';成交了吗?

我还使用了来自不同命名空间的节点工厂,您访问它的命名空间已被标记为过时,可能会从未来的版本中删除。