【发布时间】:2014-02-09 19:22:46
【问题描述】:
我有一个关于 mvc DropDownList 的问题,很多关于这个的主题,但没有一个有同样的问题。
我希望 DropDownList 有一个默认选择选项,但我还需要其他选项来选择“所有”项目。
所以我的控制器将默认值 2 绑定到下拉列表
public ActionResult Index(int? All = 2){ ...
在cshtml中我有
@Html.DropDownList("All","All items")
所有列表都是这样填写的
ViewData["All"] = new SelectList(CommonLists.property_types.Select(x => new { v = x.Value, t = x.Key.ToLower() }), "v", "t", All);
property_types
public static Dictionary<string, int> property_types = new Dictionary<string, int>() {
{ "House", 1 }, { "Flat", 2 }, { "Garden", 3 }
所以它应该像这样工作
- 第一次输入时默认选择值为2,等于“flat”,只显示“flat”项(有效)
- 用户可以将其更改为列表中的其他选项(作品)
- 无论选择“所有项目”的类别如何,用户都可以更改为一次查看所有项目(这不起作用)
我认为它应该可以工作,但令我惊讶的是,当我选择“所有项目”时,mvc 不返回 null 它只是返回默认的 int 值 2,所以基本上没有办法查询所有项目。
这假设是这样工作的吗?自动生成的“所有项目”是空值,所以我假设 mvc 会将其转换为 null,但事实并非如此。
如何解决这个问题?
【问题讨论】:
标签: c# .net asp.net-mvc drop-down-menu nullable