ASP.NET新手。尝试根据Web.config文件中的值切换正在显示的文本。以下是我的代码示例。
<td background="images/LoginBox_03.gif" width="350" height="151">
<table border="0" align="center" id="tblLogin" runat="server">
<tr id="trEmail" runat="server">
<%
If System.Configuration.ConfigurationManager.AppSettings("AD") <> "True" Then
%>
<td>
Email:
</td>
<%
ElseIf System.Configuration.ConfigurationManager.AppSettings("AD") = "False" Then
%>
<td>
Username:
</td>
<%
End If
%>
<td>
<asp:TextBox ID="txtEmail" runat="server" Width="145px" />
</td>
<td>
Visual Studio因某种原因不喜欢这个。代码不会突出显示,因为它实际上是代码。更像是文字。我认为VB.NET代码没有正确插入。有人可以帮忙指出这里有什么问题吗?
答案 0 :(得分:2)
更好的方法是使用<asp:Label .../>
控件,而不是像上面那样使用内联代码。
System.Configuration.ConfigurationManager.AppSettings("AD")
的返回值属于String
类型,您必须先将其转换为Boolean
,然后检查该值。
答案 1 :(得分:1)
您是否考虑将逻辑移至文件后面的代码?它会清理你的页面。
ASPX:
<td background="images/LoginBox_03.gif" width="350" height="151">
<table border="0" align="center" id="tblLogin" runat="server">
<tr id="trEmail" runat="server">
<td>
<asp:label id="lblFoo" runat="server" />
</td>
<td>
<asp:TextBox ID="txtEmail" runat="server" Width="145px" />
</td>
<td>
</tr>
</table>
代码背后:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If System.Configuration.ConfigurationManager.AppSettings("AD") <> "True" Then
lblFoo.text = "UserName"
Else
lblFoo.text = "Email"
End If
End Sub
答案 2 :(得分:0)
我不确定你是否可以编写像这样的代码片段......
<tr>
<%
If X Then
Response.Write "<td>blabla</td>"
Else
Response.Write "<td>omglol</td>"
End If
%>
</tr>
我认为会更好。
我还注意到If...ElseIf
陈述中有些奇怪的事。
If System.Configuration.ConfigurationManager.AppSettings("AD") <> "True" Then
'Happens if False.
ElseIf System.Configuration.ConfigurationManager.AppSettings("AD") = "False" Then
'Also happens if false
EndIf
因为如果它不同于true,那么它就是假的。