从aspx页面使用ConfigurationManager需要帮助

时间:2011-08-11 17:35:27

标签: .net asp.net vb.net

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代码没有正确插入。有人可以帮忙指出这里有什么问题吗?

3 个答案:

答案 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,那么它就是假的。