我是剃须刀的新手,有点糊涂我完成对底层c#代码所做的一些更改,我遇到了问题。
我需要在底层对象上使用settings属性来获取正确的配置文件以从中提取图像位置。我正在尝试将硬编码图像更改为可配置图像。
到目前为止我所拥有的:
else
{
@{
var prefix = Model.GetNameSpaceFromSettings();
var configImgs = ChartColors.GetImgs(prefix);
}
<div style='float:left;'>
<img src='@Url.Content(Model.ComparisonChart(300, 250, false))' border='0' alt=''/>
<p></p>
<table width='295' cellpadding='2' cellspacing='1' border='0' class='summarygridtablebackground' align="left">
<tr class='summarygridbackground'>
<td>
<div style="float:left; width:125px;"><img src='@configImgs.MyImg' border='0'></div>//This is where I'm working
</td>
</tr>
//a few more rows where I'm trying to eventually do the same thing
</table>
</div>
}
这不起作用,消息“当前上下文中不存在名称'configImgs'。”
我在另一个问题中读到,范围问题的一个常见解决方案是将变量放入@functions部分,所以我试了一下,结果看起来像这样:
else
{
@functions{
string prefix = Model.GetNameSpaceFromSettings();
Images configImgs = ChartColors.GetImgs(prefix);
}
这个失败了一个消息对,“非静态字段,方法或属性'System.Web.Mvx.WebViewPage.Model.get需要一个对象”(我尝试用'this'作为参考引用它好吧,它说'this'在当前上下文中不可用)和“字段初始值设定项不能引用非静态字段,方法或属性'ASP.Myfile.prefix'”
我真的可以在这里使用一些帮助,谢谢。
答案 0 :(得分:9)
尝试在第一个@ {}块中声明变量。然后,您就可以在视图中的任何位置使用该变量。