小编Sco*_*lus的帖子

Razor中可变范围的问题

我对剃刀很新,有点糊涂我完成对底层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>
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,消息"名称'configImgs'在当前上下文中不存在."

我在另一个问题中读到,范围问题的一个常见解决方案是将变量放入@functions部分,所以我试了一下,结果看起来像这样:

else
{
@functions{ 
      string prefix = Model.GetNameSpaceFromSettings();
      Images configImgs = ChartColors.GetImgs(prefix);
}
Run Code Online (Sandbox Code Playgroud)

这个失败了一个消息对,"非静态字段,方法或属性'System.Web.Mvx.WebViewPage.Model.get需要一个对象"(我尝试用'this'引用它,并且它说'this'在当前上下文中不可用)和"字段初始值设定项不能引用非静态字段,方法或属性'ASP.Myfile.prefix'"

我真的可以在这里使用一些帮助,谢谢.

c# razor

3
推荐指数
1
解决办法
5103
查看次数

切换内部循环会影响性能?

我正处于循环数据并根据设置以特定方式对其进行格式化的情况,我担心我认为风格最佳可能会影响性能.

代码的基本模式如下

enum setting {single, multiple, foo, bar};
Data data = getData(Connection conn, int id);
setting blah = data.getSetting();
foreach (Item item in data)
{
   switch(blah)
   {
      case blah.single:
        processDataSingle(item blah);
        break;
      ...
   }
}
Run Code Online (Sandbox Code Playgroud)

我担心的是数据中可能有数千甚至数万项.我想知道是否在循环内部的开关可能会反复评估可能会导致一些严重的性能问题.我知道我可以把它放在switch循环之前,但是每个都case包含它,这似乎更不易读,因为基本功能保持不变是不太明显的.

c# performance coding-style

3
推荐指数
1
解决办法
576
查看次数

标签 统计

c# ×2

coding-style ×1

performance ×1

razor ×1