2016-07-29 51 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" /> 

我得到我的src屬性錯誤如圖所示線以下

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

我得到一個錯誤,指出imgUrl的不在範圍內。我該如何解決這個問題?我嘗試使用<span>,我也試着把它放在{}中,但沒有任何工作。我也嘗試過src屬性的引號,但它沒有工作。

+1

在你的if語句的範圍之外聲明imgUrl **。 –

回答

2

您需要在if語句之外聲明imgUrl變量,因爲它在它自己的範圍內。

@{ 
    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變量。