简体   繁体   English

ASP.NET MVC Razor:将空值添加到DropDownList

[英]ASP.NET MVC Razor: Add empty value to a DropDownList

I tried for hours to get it work, but now I have to ask.. 我试了几个小时让它工作,但现在我不得不问...

As read in 正如读入
/942262/add-empty-value-to-a-dropdownlist-in-asp-net-mvc and /3780614/mvc-clear-default-selected-value-of-selectlist / 942262 / add-empty-value-to-a-dropdownlist-in-asp-net-mvc/ 3780614 / mvc-clear-default-selected-value-of-selectlist
I want to add an empty space to dropdown lists in my ASP.NET MVC Razor WebApp with Entity Framework 5 to force the user for an input. 我想在我的ASP.NET MVC Razor WebApp中使用Entity Framework 5向下拉列表添加一个空格,以强制用户输入。

I followed the informations, but what happend in the View is that: http://i.stack.imgur.com/EXSgT.png 我按照了信息,但视图中发生的是: http//i.stack.imgur.com/EXSgT.png
So, as you see, there is an empty space, but it isn't selected by default. 因此,如您所见,有一个空白区域,但默认情况下不会选中它。 Instead, my "testproject", as first value from my controller, is marked.. Not the empty space. 相反,我的“testproject”,作为我的控制器的第一个值,被标记为..不是空的空间。 So where did I fail? 那我在哪里失败了?

Thanks a lot. 非常感谢。

My model looks like that: 我的模型看起来像这样:

    [...]
    using System.Web.Mvc;

    public class UploadTranferContainer
    {    
         [DisplayName("Project")]
         public int ProjectID { get; set; }

         public SelectList Projects { get; set; }
    }

My controller fills the data in like: 我的控制器填充数据如下:

    UploadTranferContainer container = new UploadTranferContainer();
    container.Projects = new SelectList(db.Projects.AsEnumerable(), "ProjectID", "ProjectName");

And the view unpacks my container like: 并且视图解压缩我的容器,如:

        <div class="editor-label metadataLabel">
            @Html.LabelFor(x => x.ProjectID)
        </div>
        <div class="editor-field">
            @Html.DropDownListFor(x => x.ProjectID, Model.Projects, string.Empty)
        </div>            

The selected value of the dropdown will be the value (if found) of Model.ProjectID 下拉列表的选定值将是Model.ProjectID的值(如果找到)

If you want this to appear as the first (empty) option of the select, make sure the value of ProjectID is not contained in the select list items Model.Projects 如果要将其显示为select的第一个(空)选项,请确保ProjectID的值不包含在选择列表项Model.Projects

您可以使用以下方法下拉空值

@Html.DropDownListFor(x => x.ProjectID, new SelectList(Model.Projects, "ProjectID", "ProjectName"), " ")

Allows to create a empty list item 允许创建一个空列表项

var area = new[] { new tbl_Area { AreaID = -1, AreaName = "Please Select Main Area" } };

or 要么

ViewBag.SubAreaList = new[] { new tbl_Area { AreaID = -1, AreaName = "Please Select Main Area" } };

razor 剃刀

@Html.DropDownList("DdlSubAreas", new SelectList(ViewBag.SubAreaList, "AreaID", "AreaName"), new { size = "10" });

tbl_Area can be a class or datamodel tbl_Area可以是类或数据模型

class tbl_Area{
   public int AreaID {get;set;}
   public string AreaName {get;set;}
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM