2016-07-29 4 views
-2

これは私のビューコードです。asp.netの文脈で剃刀変数を保持する方法は?

@{ 
    string file = "~/Content/Images/" + User.Identity.GetUserId() + ".png"; 
    if (File.Exists(file)) 
    { 
     var imgUrl = Url.Content("~/Content/Images/" + User.Identity.GetUserId() + ".png") + "?time=" + DateTime.Now.ToString(); 
    } 
    else 
    { 
     var imgUrl = Url.Content("~/Content/Images/Default_Profile.png") + "?time=" + DateTime.Now.ToString(); 
    } 

} 
    <img src="@imgUrl" height="50" width="50" /> 

<img src="@imgUrl" height="50" width="50" /> 

下の行に示されているように私は私がimgUrlがコンテキストではないというエラーを取得しています私のsrc属性にエラーを取得しています。これをどうやって解決するのですか?私は<span>を使ってみましたが、これも{}に入れてみましたが、何も働いていませんでした。私もsrc属性の引用を試みましたが、うまくいきませんでした。

+1

imgUrl ** outside ** if文のスコープを宣言してください。 –

答えて

2

imgUrl変数は、ifステートメントの外に、それ自身の有効範囲内にあると宣言する必要があります。

@{ 
    string file = "~/Content/Images/" + User.Identity.GetUserId() + ".png"; 
    var imgUrl = string.Empty; 
    if (File.Exists(file)) 
    { 
     imgUrl = Url.Content("~/Content/Images/" + User.Identity.GetUserId() + ".png") + "?time=" + DateTime.Now.ToString(); 
    } 
    else 
    { 
     imgUrl = Url.Content("~/Content/Images/Default_Profile.png") + "?time=" + DateTime.Now.ToString(); 
    } 

    <img src="@imgUrl" height="50" width="50" /> 
} 
0
 @{ 
     string imgUrl = string.Empty; 
     string file = "~/Content/Images/" + User.Identity.GetUserId() + ".png"; 
     if (File.Exists(file)) 
     { 
      imgUrl = Url.Content("~/Content/Images/" + User.Identity.GetUserId() + ".png") + "?time=" + DateTime.Now.ToString(); 
     } 
     else 
     { 
     imgUrl = Url.Content("~/Content/Images/Default_Profile.png") + "?time=" + DateTime.Now.ToString(); 
     } 
     <img src="@imgUrl" height="50" width="50" /> 
    } 
+0

説明を追加することで、この回答と既存の同一のものとを区別することができます。 –

0

場合とそうでない範囲外imgUrl変数を宣言してください。

関連する問題