[英]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.