-1

如何使第一个选项值为零而不是空字符串。因此,当用户进入表单并且没有选择任何内容时,值将像零一样传递。我是 MVC 的新手,花了很多时间试图找到一个简单的答案。这可以在 Jquery 中完成吗?任何建议将不胜感激。

这是我的观点

@Html.DropDownListFor(x => x.ItemCatId,
 new SelectList(Model.CategoryddList, "Value", "Text"),
 "Select Category")

和控制器

items.CategoryddList =
        itemsRepository.GetItemDdl("Item Categories").Select(c => new SelectListItem 
                        {
                           Value = c.DropdownID.ToString(),
                           Text = c.DropdownText
                        });  
4

1 回答 1

1

像许多问题一样,有很多方法可以做到这一点。Jquery 和 Javascript 是一种选择。对我来说最快(也是懒惰)的方法是在列表顶部添加一个额外的项目,其值为“请选择”。我不知道你的门面是如何工作的,但它应该是这样的

items.CategoryddList = new Category( null , 0, “Please Select …”); //add the default
//rest of your code
items.CategoryddList =
    itemsRepository.GetItemDdl("Item Categories").Select(c => new SelectListItem 
                    {
                       Value = c.DropdownID.ToString(),
                       Text = c.DropdownText
                    });  

请记住,您还必须在 HTTPPost 操作中处理这种情况。

另一种方法是不使用剃须刀 @Html.DropDownListFor 并使用其中包含 foreach 的 HTML。稍后我将尝试查找其他方法来执行此操作

编辑:这是从视图中执行此操作的另一种方法(我现在找不到快速的 Jquery 代码)。试试这个:

<select name="FOOName"  id="FOOName" onchange="test(this)">
   <option value=""> Please Select</option>
   @{ foreach (var type in Model.CategoryddList)
   { 
    <option value="@type.Value"> @type.Text </option>
   }
}
</select> 
于 2012-10-25T21:01:52.210 回答