2012-02-14 55 views
3

我正在读取数据库中的百分比,然后使用该数字创建一个显示视觉进度的栏。我需要做这样的事情我的aspx页面上:动态更改ASP.NET MVC中的样式属性

 <% 
     if (ViewData["width"] != null){ 
     <div style="width: <%: ViewData["width"] %>px;" 
     </div> 
     }%> 

当然上面的方法是不行的,但希望你能看到我尝试实现。如何在ASP.NET MVC中动态更改样式属性?

回答

9

您只是在代码块的中间写了HTML。您需要将HTML放在代码块之外。

<% if (ViewData["width"] != null) { %> 
    <div style="width: <%: ViewData["width"] %>px;"></div> 
<% } %> 

或者,您可以切换到其摒弃了所有的<% %> S和允许你点缀C#和HTML更容易的剃刀语言。它看起来像这样:

@if (ViewBag.width != null) { 
    <div style="width: @(ViewBag.width)px;"></div> 
} 
+0

这是MVC2,所以我不能使用ViewBag。此外,这将是一个结果集有很多结果,所以我需要代码块内的HTML,因为我将通过for语句循环。除非我误解你的意思 – BoundForGlory 2012-02-14 22:13:31

+2

@userrandomnumbers:HTML将仍然在if语句(和任何其他控制结构)中。就在被解释为C#的部分之外。尝试一下! – 2012-02-14 22:15:22

+0

你知道吗,我的方法确实有效。我从来没有测试过它。我的代码没有改变颜色,它看起来像一个评论。 – BoundForGlory 2012-02-14 22:18:31

1

你的方法应该工作,你只需要把div代码服务器块之外。

<% if (ViewData["width"] != null){ %> 
    <div style="width: <%: ViewData["width"] %>px;" 
    </div> 
<% } %>