2016-05-03 29 views
1

我想通过风格Attribute(设置div的宽度使用DIV作为引导进度条。我想这样做在foreach循环中的foreach ASP.NET MVC剃刀设置样式属性

@foreach (var item in Items) 
     { 
     <tr> 
      <td>@item.Name</td> 
      <td> 
      <div class="progress"> 
       <div class="progress-bar" role="progressbar" aria-valuenow="@item.PercentageCompleted" aria-valuemin="0" aria-valuemax="100" style="width: @item.PercentageCompleted;"> 

       </div> 
      </div> 
      </td> 
     </tr> 
     } ` 

什么情况是,风格attribute是空的。有没有办法实现这一目标?

+0

“PercentageCompleted”的值是多少?他们只是一个数字,或者他们是'## px','##%''等等? –

+0

它们只是一个数字,但对于项目列表中的每个条目都是不同的。 – crauscher

+0

经过测试,它确实生成'style'属性,但它不会有效 - 您需要像'style =“@ string.format(”width:{0}%;“,item.PercentageCompleted)”'使其有效 –

回答

1

这要看什么珍惜你PercentageCompleted属性给出。

如果它仅仅是一个double数代表%(例如, 50.1),您需要将%符号添加到您的@item.PercentageCompleted这样的结尾:

... style="width: @(item.PercentageCompleted)%;"> 

括号包裹剃刀内容以避免出现错误。这将使你style="width: 50.1%"

如果你想设置的像素值,你需要做的是相同的,但增加px到你的剃须刀代码末尾:

... style="width: @(item.PercentageCompleted)px;"> 

大多数CSS属性做不接受香草数字(0除外);它需要定义一种类型以量化使用该值的什么度量。 px%emvh

查看this link看到CSS单位的详细信息。很有用。

+0

我厌倦了上面的代码,它仍然产生一个空的样式属性。我已经尝试了两种方式,都没有工作 – crauscher

+0

@crauscher这很不寻常。我会采取的下一步将是: 1:拿一杯咖啡; 2:在使用item.PercentageCompleted属性的调试器中粘贴一个断点,并查看它是什么值(以检查应该从另一端出来的东西)。很小的机会,但它可能是空的/无效的; 3:如果item.PercentageCompleted属性看起来不错,在浏览器中使用“Inspector”查看元素的内联样式属性。浏览器的检查员通常很擅长向CSS语法显示错误。 让我知道你如何得到,我会尝试进一步建议。 –

0

这似乎是一个文化问题。使用','作为with中的小数分隔符不起作用,使用'。'。作品。