MVC / HTML.DropDownListFor / 制作默认选项及其值
MVC / HTML.DropDownListFor / making default option and its value
我在 ProductController 中有 CreateForm
操作。此操作使用带有模型的视图:ProductSupplierViewModel
(由产品和列表 Suppliers组成)。
在我的 CSHTML 中我有
@Html.LabelFor(m => m.Product.Supplier)
@Html.DropDownListFor(m => m.Product.Supplier.Id, new SelectList(Model.Suppliers, "Id", "Name"), "", new { @class = "form-control" })
但是,这样我只将我的默认选项设置为空白(通过在 html 帮助程序中使用两个引号)。
我需要知道的是:
- 如何将
value="0"
设置为该空白选项?
- 如果我们不指定,网络是否有默认值?
尝试获取 0,因为在我的 DataAccessLayer 中我有 CreateProduct(Product p)
方法,我将在其中指定:
if(p.Supplier.Id == 0) // from parameter
{
*put NULL value in this DB field*
}
最简单的是:
@Html.DropDownListFor(m => m.Product.Supplier.Id,
new SelectList(Model.Suppliers, "Id", "Name", 0),
"Please Select...",
new { @class = "form-control" })
这将创建一个默认项“请 Select...”。但是,select 与默认项不同的项目是强制性的。
如果 select 某项不是强制性的,您可以这样做:
控制器
model.Suppliers.Insert(0, new Supplier()
{
Id = 0,
Name = "Please Select..."
});
查看
@Html.DropDownListFor(m => m.Product.Supplier.Id,
new SelectList(Model.Suppliers, "Id", "Name", 0),
new { @class = "form-control" })
我在 ProductController 中有 CreateForm
操作。此操作使用带有模型的视图:ProductSupplierViewModel
(由产品和列表
在我的 CSHTML 中我有
@Html.LabelFor(m => m.Product.Supplier)
@Html.DropDownListFor(m => m.Product.Supplier.Id, new SelectList(Model.Suppliers, "Id", "Name"), "", new { @class = "form-control" })
但是,这样我只将我的默认选项设置为空白(通过在 html 帮助程序中使用两个引号)。
我需要知道的是:
- 如何将
value="0"
设置为该空白选项? - 如果我们不指定,网络是否有默认值?
尝试获取 0,因为在我的 DataAccessLayer 中我有 CreateProduct(Product p)
方法,我将在其中指定:
if(p.Supplier.Id == 0) // from parameter
{
*put NULL value in this DB field*
}
最简单的是:
@Html.DropDownListFor(m => m.Product.Supplier.Id,
new SelectList(Model.Suppliers, "Id", "Name", 0),
"Please Select...",
new { @class = "form-control" })
这将创建一个默认项“请 Select...”。但是,select 与默认项不同的项目是强制性的。
如果 select 某项不是强制性的,您可以这样做:
控制器
model.Suppliers.Insert(0, new Supplier()
{
Id = 0,
Name = "Please Select..."
});
查看
@Html.DropDownListFor(m => m.Product.Supplier.Id,
new SelectList(Model.Suppliers, "Id", "Name", 0),
new { @class = "form-control" })