MVC Razor下拉列表默认值未触发onchange事件

时间:2020-06-17 18:20:06

标签: c# asp.net-mvc razor

我在通过枚举数据模型对象填充的c#MVC Razor应用程序中有一个下拉列表。我的问题进场当用户选择下拉的默认值是从模型的第一个值,并选择当它不被触发onchange事件。请参见下面的代码:

.net核心mvc剃刀视图

            <tr>
                <td>
                    <a id="GenderLnk" href="#">Click Here to Update</a><br>
                    <div id="GenderDiv" style="display:none;">
                        @using (Html.BeginForm("UpdateGender", "Home", FormMethod.Post))
                        {
                            @Html.DropDownListFor(m => m.StudentGender, new SelectList(Enum.GetValues(typeof(Gender))), new { @class = "show", onchange = "this.form.submit();" })
                        }
                    </div>
                </td>
            </tr>

这是模型属性

    public Gender StudentGender { get; set; }

    public enum Gender
    {
        Female,
        Male,
        [Display(Name ="Not Applicable")]
        NotApplicable,
        Transgender

    }

This is screenshot of drop down list with code suggested by Dilan.  As can see, still Female is default

1 个答案:

答案 0 :(得分:1)

不触发“ onChange”功能的原因是,从技术上讲,如果用户在第一次尝试中选择了默认值,它就不会更改表单中的任何值。您可以做的是提供“请选择”之类的值作为默认值,然后让用户在列表中选择一个值。

@Html.DropDownListFor(m => m.StudentGender, new SelectList(Enum.GetValues(typeof(Gender))), "-- Please Select -- ", new { @class = "show", onchange = "this.form.submit();" })

也许您也可以使用此问题+答案。希望这会有所帮助。

Get a default NULL value from DropDownList in ASP.NET MVC