Asp.net mvc 在asp.net MVC下拉列表中处理空值

Asp.net mvc 在asp.net MVC下拉列表中处理空值,asp.net-mvc,Asp.net Mvc,如何在ASP.NET MVC中创建可以处理空值的下拉列表 应用程序是数据库中的查找字段,其中主键位于查找表中,即类别,外键位于另一个表中,即CategoryID,但CategoryID是可选的(即它可以包含null) 我可以想象,在用户的网页中生成的标记如下所示: <select id="foo"> <option value="">(Not Specified)</option> <option value="1">Alpha&l

如何在ASP.NET MVC中创建可以处理空值的下拉列表

应用程序是数据库中的查找字段,其中主键位于查找表中,即类别,外键位于另一个表中,即CategoryID,但CategoryID是可选的(即它可以包含null)

我可以想象,在用户的网页中生成的标记如下所示:

<select id="foo">
    <option value="">(Not Specified)</option>
    <option value="1">Alpha</option>
    <option value="2">Bravo</option>
    <option value="3">Charlie</option>
</select>

(未指定)
阿尔法
布拉沃河
查理

我可以在不必编写自定义HtmlHelper的情况下执行类似的操作吗?当需要保存时,这会正确绑定到基础模型吗?

您不需要编写帮助程序。它已经存在了。使用其中一个Html.Select重载,该重载采用optionLabel参数。将其设置为“(未指定)”。

此外,您绑定到的任何字段都必须可为空-在本例中,可以是字符串,也可以是可为空的int。

太简单了。

。)我想我没有对intellisense感兴趣…它说,“如果它不为null,则为默认空值选项提供文本。”如果我对标记没有很好的理解,这对我来说毫无意义,尽管如果是这样,我可能无论如何都不应该在MVC沙箱中玩。此外,“如果它不是空的”这个短语似乎是倒退的。无论如何,谢谢你的帮助。有时你只需要问一下,我假设它是指选项标签,当它声明“if it not null”时。这样做的方式是,如果你指定NULL(或者另一个没有设置它的重载),它根本不会显示空白选项。否则,无论你指定什么,包括一个空字符串,而不是NULL,都被用作空白选项文本。