Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC/HTML.DropDownListFor/making默认选项及其值_C#_Asp.net Mvc_Visual Studio_Html Helper - Fatal编程技术网

C# MVC/HTML.DropDownListFor/making默认选项及其值

C# MVC/HTML.DropDownListFor/making默认选项及其值,c#,asp.net-mvc,visual-studio,html-helper,C#,Asp.net Mvc,Visual Studio,Html Helper,我在ProductController中执行了CreateForm操作。此操作使用模型视图:ProductSupplierViewModel(由产品和供应商列表组成) 在我的CSHTML中,我有 @Html.LabelFor(m => m.Product.Supplier) @Html.DropDownListFor(m => m.Product.Supplier.Id, new SelectList(Model.Suppliers, "Id", "Na

我在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" })
但是,通过这种方式,我只将默认选项设置为空白(通过在HTMLHelper中使用两个引号)

我需要知道的是:

  • 如何将
    value=“0”
    设置为该空白选项
  • 如果我们没有为web指定默认值,web是否有默认值
  • 正在尝试获取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,
    新的选择列表(Model.Suppliers,“Id”,“Name”,0),
    “请选择…”,
    新的{@class=“表单控制”})
    
    这将创建一个默认项“请选择…”。但是,必须选择与默认值不同的项目

    如果选择项目不是强制性的,则可以执行以下操作:

    控制器

    model.Suppliers.Insert(0,新供应商()
    {
    Id=0,
    Name=“请选择…”
    });
    
    查看

    @Html.DropDownListFor(m=>m.Product.Supplier.Id,
    新的选择列表(Model.Suppliers,“Id”,“Name”,0),
    新的{@class=“表单控制”})