2012-02-14 58 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> 
<% } %>