2016-07-29 49 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变量。