【问题标题】:MVC / HTML.DropDownListFor / making default option and its valueMVC / HTML.DropDownListFor / 制作默认选项及其值
【发布时间】:2021-02-10 07:35:06
【问题描述】:

我在 ProductController 中有CreateForm 操作。此操作使用带有模型的视图:ProductSupplierViewModel(由 Product 和 ListSuppliers 组成)。

在我的 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 帮助器中使用两个引号)。

我需要知道的是:

  1. 如何为该空白选项设置value="0"
  2. 如果我们不为它指定一个,网络是否有默认值

试图获得 0,因为在我的 DataAccessLayer 我有 CreateProduct(Product p) 方法,我将在其中指定:

if(p.Supplier.Id == 0) // from parameter
{ 
  *put NULL value in this DB field*
}

【问题讨论】:

    标签: c# asp.net-mvc visual-studio html-helper


    【解决方案1】:

    最简单的就是:

    @Html.DropDownListFor(m => m.Product.Supplier.Id, 
        new SelectList(Model.Suppliers, "Id", "Name", 0),
        "Please Select...",
        new { @class = "form-control" })
    

    这会创建一个默认项目“请选择...”。但是,必须选择与默认值不同的项目。

    如果选择一个项目不是强制性的,你可以这样做:

    控制器

    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" })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多