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

Mex*_*xx_ 8 c# asp.net asp.net-mvc razor asp.net-mvc-3

我试了几个小时让它工作,但现在我不得不问...

正如在
/ 942262/add-empty-value-to-a-dropdownlist-in-asp-net-mvc/ 3780614/mvc-clear-default-selected-value-of-selectlist中所读,
我想添加一个空的空格到我的ASP.NET MVC Razor WebApp中的下拉列表与Entity Framework 5强制用户输入.

我按照了这些信息,但View中发生的事情是:http ://i.stack.imgur.com/EXSgT.png
因此,如您所见,有一个空白区域,但默认情况下不会选中它.相反,我的"testproject",作为我的控制器的第一个值,被标记为..不是空的空间.那我在哪里失败了?

非常感谢.

我的模型看起来像这样:

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

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

         public SelectList Projects { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

我的控制器填充数据如下:

    UploadTranferContainer container = new UploadTranferContainer();
    container.Projects = new SelectList(db.Projects.AsEnumerable(), "ProjectID", "ProjectName");
Run Code Online (Sandbox Code Playgroud)

并且视图解压缩我的容器,如:

        <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>            
Run Code Online (Sandbox Code Playgroud)

小智 5

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

@Html.DropDownListFor(x => x.ProjectID, new SelectList(Model.Projects, "ProjectID", "ProjectName"), " ")
Run Code Online (Sandbox Code Playgroud)


Jay*_*Jay 4

下拉列表中选定的值将是以下值(如果找到)Model.ProjectID

如果您希望它显示为选择的第一个(空)选项,请确保 的值ProjectID不包含在选择列表项中Model.Projects