2008-11-27 56 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