2008-11-27 58 views
1

我有一個要求,將條件禁用&類屬性添加到下拉表單元素。我有以下幾點,但是它沒有寫出任何狀態下的任何屬性。有沒有解決的辦法。有條件的屬性 - Asp.Net MVC視圖

<%= Html.DropDownList("--Choose Make--", "models", ViewData["model_disabled"] == "false" ? new { @disabled = "disabled", @class = "test" } : null)%> 

回答

2

的問題是:

ViewData["model_disabled"] == "false" 

從ViewData的返回[]是對象。用兩個對象調用==比較它們的標識(即,它們是否完全相同的對象實例),而不是它們的相等性(即,這些字符串是否是相同的值)。

可以代替試試這個:

((string)ViewData["model_disabled"]) == "false" 

編輯:

稍微清晰的語法是可用的MvcContrib ViewData的擴展:

ViewData.Get<string>("model_disabled") == "false" 

雖然這感覺有點清潔,你也會注意到它稍長一些。 :-p

+0

乾杯布拉德,這是最好的方式?不知道我真的很喜歡它的可讀性。 – redsquare 2008-11-27 21:55:34