2012-05-11 12 views
0

ホストヘッダーに基づいて別のリダイレクトを行う目的でdefault.aspxページがあります。Default.aspx redirect

<% 
if(System.Web.HttpContext.Current.Request.Url.Host == "xxx.xxx.com") 
{ 
response.redirect ("place/subplace/xxx.aspx") 
} 
else 
{ 
response.redirect ("place/xxx.aspx") 
} 
%> 

しかし、「コンパイラエラーメッセージ:BC30201:Expression expected」というエラーが表示されます。

私は間違っていますか? C#の式で

答えて

4

はセミコロンで;

if (System.Web.HttpContext.Current.Request.Url.Host == "xxx.xxx.com") 
{ 
    Response.Redirect("place/subplace/xxx.aspx"); <-- here 
} 
else 
{ 
    Response.Redirect("place/xxx.aspx"); <-- and here 
} 

末端とC#は大文字と小文字が区別されます。 ResponseRedirectの両方が大文字で始まります。

編集:あなたが今、あなたのコードが有効なVB.netコードではありませんVB.Net

としてこれをタグ付けするので。それがそうだったら次のように読むべきです:

+0

これは正しくありません。 if文を削除すると、リダイレクトはセミコロンの有無に関係なく動作します。 ifステートメントでは、2行目(ifステートメントと同じ行)のエラーが返されます。 – Josh

+0

これはホストの値と比較するものです – Josh

+0

これはわかります。 –

0

コンパイラが "表現が期待される"エラーを与えるとき、それは通常シンセックスエラーです。 response.redirectの後にセミコラム(;)を追加しますか?

0

私のために、次の作品:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if(System.Web.HttpContext.Current.Request.Url.Host == "xxx.xxx.com") 
     { 
      Response.Redirect("place/subplace/xxx.aspx"); 
     } 
     else 
     { 
      Response.Redirect("place/xxx.aspx"); 
     } 
    } 
+0

ソリューションをご利用いただきありがとうございます。 "BC30205:End of statement expected。 "というエラーが表示されます。これは、<% %>タグの間のaspxページにあるのでしょうか? – Josh

+0

あなたはしません。上記の私の答えで述べたように、セミコロンが必要です(たとえあなたがよく知っていると思うとしても)。そして 'response.redirect'の使用はおそらくどちらもコンパイルされません。 –

+0

私はよく知っているとは思わないが、実際にはそれがうまくいかないと言ってみる前にそれを試してはいけないと思いますか?私は正確なコードを上記の場所に掲示して、エラーが出てきています。 – Josh

0

は、これは私のために働きました。 http://www.w3schools.com/asp/met_redirect.asp

上記のリンクを使用して、次の行を書きましたが、問題なく実行されました。最後にセミコロンがないことに注意してください。私のdefault.aspxページには、次の3行だけが含まれています。

<% 
    Response.Redirect("~/portal") 
%> 

考えられる理由は次のとおりです。通常、言語は.aspxページの先頭またはweb.configファイルに記述されています。言語に言及されていない場合、IISはVB.NETを使用してページをコンパイルし、VB.NETはセミコロンを使用してステートメントを終了しないことを認識しています。