可以给Html.DropDownListFor()选项标签一个值吗?

时间:2011-04-09 22:17:50

标签: c# asp.net-mvc asp.net-mvc-3

我有这个

 @Html.DropDownListFor(x => x.Names, new SelectList(Model.Names, "Value", "Text"), "---Filter By Name---", new { @class = "nameSelecter" })

当这呈现“---按姓名过滤---”将是首选。我想知道我可以为此设置一个值吗?

<option value="">---Filter By Name---</option>

现在它没有任何价值。我想给一个。

2 个答案:

答案 0 :(得分:7)

DropDownListFor不支持此功能。您需要编写自定义帮助程序或使用javascript执行此操作。这就是说为默认选择设置一个值是没有意义的,因为它也会破坏所需属性的验证逻辑。

答案 1 :(得分:1)

我能想到想要能够做到这一点的理由。我现在正面对它。但是,一如往常可能有另一种方式。我不希望选择是必需的,因为得到的“空值”(或0)值具有特殊意义,不与其他值冲突,并且可以通过预期用于这种特殊的,虽然是人为诱导的情况。

我正在使用EF,我有一个/或有效的下拉选择产生复杂模型中相关实体的密钥。当输入零值时,期望是呈现相关实体绑定控件并由此进行验证。当输入非零值时,它表示键值,因此不呈现相关实体控件,并且父实体足以拥有现有键值...不需要创建新子项所需的实际绑定值实体。