2011-08-11 11 views
0

ASP.NETが初めてです。 Web.configファイルの値に基づいて表示されているテキストを切り替えることができるようにしようとしています。ここに私のコードのサンプルがあります。aspxページからConfigurationManagerを使用する際の助けが必要です

<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

コードは実行されますか?構文の強調表示がオフになっていても心配する必要はありません。ASPXにコードを挿入して、できるだけコードの後ろにコードを保存しておかなければなりません。 –

+0

さまざまな理由で、コードがaspxページで強調表示されないことがよくあります。これは、シーンの背後ではまだコンパイルエラーが発生していない、参照を解決するなどの問題です。つまり、何かを意味する構文の不足を信頼しないでください。コードを実行するとどうなりますか? – NotMe

+0

あなたの構文もちょっと見えます。最初に真でないかどうかをチェックし、偽であるかどうかをチェックします。それが本当であればどうなりますか?あなたのコードはそれを説明していません。 – zeroef

答えて

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

上記のようにインラインコードを使用する代わりに、より良い方法は<asp:Label .../>コントロールを使用することです。

System.Configuration.ConfigurationManager.AppSettings("AD")の戻り値の型はStringです。最初に値をBooleanにキャストして値を確認する必要があります。

0

私はあなたがこのようなコードの断片を書くことができるかわからない...

<tr> 
    <% 
    If X Then 
     Response.Write "<td>blabla</td>" 
    Else 
     Response.Write "<td>omglol</td>" 
    End If 
    %> 
</tr> 

は、より良い仕事と私思う。

私はまたあなたのIf...ElseIfのステートメントで何か変わったことに気づいた。

trueと異なる場合はfalseです。

関連する問題