ビューが読み込まれたら、ユーザーがアクセスしているドメインを確認し、その結果に基づいて、ページに表示されるロゴの異なるスタイルシートと画像ソースを参照する必要があります。
これは私のコードです:
@{
string currentstore=HttpContext.Current.Request.ServerVariables["HTTP_Host"];
if (currentstore == "www.mydomain.com")
{
<link href="/path/to/my/stylesheets/styles1-print.css" rel="stylesheet" type="text/css" />
string imgsrc="/content/images/uploaded/store1_logo.jpg";
}
else
{
<link href="/path/to/my/stylesheets/styles2-print.css" rel="stylesheet" type="text/css" />
string imgsrc="/content/images/uploaded/store2_logo.gif";
}
}
次に、少し下にimgsrc変数を次のように呼び出します。
<a href="@Url.RouteUrl("HomePage")" class="logo"><img alt="" src="@imgsrc"></a>
次のエラーが表示されます:
エラーCS0103:名前 'imgsrc'は現在のコンテキストに存在しません
これは、「imgsrc」変数が現在閉じられているコードブロックで定義されているためだと思います...?
この変数をページのさらに下で参照する適切な方法は何ですか?
宣言をifブロックの外側に移動するだけです。
@{
string currentstore=HttpContext.Current.Request.ServerVariables["HTTP_Host"];
string imgsrc="";
if (currentstore == "www.mydomain.com")
{
<link href="/path/to/my/stylesheets/styles1-print.css" rel="stylesheet" type="text/css" />
imgsrc="/content/images/uploaded/store1_logo.jpg";
}
else
{
<link href="/path/to/my/stylesheets/styles2-print.css" rel="stylesheet" type="text/css" />
imgsrc="/content/images/uploaded/store2_logo.gif";
}
}
<a href="@Url.RouteUrl("HomePage")" class="logo"><img alt="" src="@imgsrc"></a>
あなたはそれを少しきれいにすることができます。
@{
string currentstore=HttpContext.Current.Request.ServerVariables["HTTP_Host"];
string imgsrc="/content/images/uploaded/store2_logo.gif";
if (currentstore == "www.mydomain.com")
{
<link href="/path/to/my/stylesheets/styles1-print.css" rel="stylesheet" type="text/css" />
imgsrc="/content/images/uploaded/store1_logo.jpg";
}
else
{
<link href="/path/to/my/stylesheets/styles2-print.css" rel="stylesheet" type="text/css" />
}
}