c# - MVC Razor 下拉列表默认值未触发 onchange 事件
问题描述
我在通过枚举数据模型对象填充的 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
}
解决方案
不触发“onChange”功能的原因是,如果用户在第一次尝试时选择了默认值,它在技术上不会更改表单中的任何值。您可以做的是提供一个像“请选择”这样的值作为默认值,让用户在列表中选择一个值。
@Html.DropDownListFor(m => m.StudentGender, new SelectList(Enum.GetValues(typeof(Gender))), "-- Please Select -- ", new { @class = "show", onchange = "this.form.submit();" })
也许您也可以考虑使用这个问题+答案。希望这可以帮助。
推荐阅读
- python - 子图上的双 y 轴
- autotools - 未安装 autotools/libtool 共享库
- python-3.x - 我如何增加 svg 格式的静态绘图图的大小
- sql - 如何使用 SQL 使用 Teradata 中的表中的开始日期和结束日期创建日期列?
- assembly - 什么是带有 Neon 的 ARMv7,相当于 vmovd/vmovq?
- java - Java - 使用其他成员的值初始化成员
- javascript - 在数组中查找最大数量并返回对象名称
- java - 为什么 Android Studio 坚持让我做这个 void?
- firebase-realtime-database - 了解 Firebase 上的基本 Firebase 安全规则
- c++ - 我的数组填充了随机数而不是文件号