我的HTML DropDownList没有显示创建的SelectList的问题是什么?

时间:2016-12-02 18:28:28

标签: c# asp.net asp.net-mvc

我一直在搞乱一些ASP.NET MVC代码,我试图通过视图中的HTML Helper创建DropDownList,但我尝试单独创建SelectList然后传递对象引用DropDownList,它在运行代码时不会显示。它显示为标签旁边的空白区域。顺便说一句,我很清楚DropDownListFor方法,我只是好奇为什么这不起作用。

@using (Html.BeginForm())
{
    @Html.ValidationSummary()
    <p>Your name: @Html.TextBoxFor(x => x.Name) </p>
    <p>Your email: @Html.TextBoxFor(x => x.Email)</p>
    <p>Your phone: @Html.TextBoxFor(x => x.Phone)</p>
    <p>Test: @Html.TextBox("Test")</p>
    <p>Test2: 
        @{ List<SelectListItem> a = new List<SelectListItem>();
            a.Add(new SelectListItem() { Text = "Jake", Value = "Jake" });
            a.Add(new SelectListItem() { Text = "Sam", Value = "Sam" });
            IEnumerable<SelectListItem> b = new SelectList(a);
            Html.DropDownList("Test2", b, "Choose a name");
         }
   </p>

这就是它的样子

RSVPForm in browser

1 个答案:

答案 0 :(得分:0)

您可以完全省略SelectList,并且对DropDownList的调用需要在&#39; @&#39;

之前
@using (Html.BeginForm())
{
    @Html.ValidationSummary()
    <p>Your name: @Html.TextBoxFor(x => x.Name) </p>
    <p>Your email: @Html.TextBoxFor(x => x.Email)</p>
    <p>Your phone: @Html.TextBoxFor(x => x.Phone)</p>
    @*<p>Phone: @Html.TextAreaFor(x => x.WillAttend)</p>*@
    <p>Test: @Html.TextBox("Test")</p>
    <p>Test2: 
        @{ List<SelectListItem> a = new List<SelectListItem>();
            a.Add(new SelectListItem() { Text = "Jake", Value = "Jake" });
            a.Add(new SelectListItem() { Text = "Sam", Value = "Sam" });

            //string c = (string)b.SelectedValue;
         }
        @Html.DropDownList("Test2", a, "Choose a name");
   </p>
}