在@Html.DropDownList 中从控制器端绑定下拉列表选择的值
Posted
技术标签:
【中文标题】在@Html.DropDownList 中从控制器端绑定下拉列表选择的值【英文标题】:Binding dropdown list selected value from controller side in @Html.DropDownList 【发布时间】:2021-02-22 01:01:33 【问题描述】:将所选值绑定到使用控制器中的@html.DropDownList 生成的下拉列表的正确方法是什么。即应该从控制器端选择下拉菜单。这就是我生成下拉列表的方式。
@Html.DropDownList("CountryFilter", (IEnumerable<SelectListItem>)ViewBag.Coutries, "Select", new id = "CountryFilter" )
我的方法 - 我尝试使用 id 选择器使用 jquery 更新值,但我无法像这样在 OnPageload 方法中接收要从控制器中选择的值
$(document).ready(function ()
$('[data-toggle="tooltip"]').tooltip();
$('#RoleFilter').val(@ViewBag.roleFilter.ToString());
);
当我像这样硬编码值时它起作用了
$('#RoleFilter').val("3");
但我无法从 ViewBag 中获取值。
我的问题可以通过两种方式解决
-
使用 Jquery
直接将值绑定到下拉列表。
【问题讨论】:
使用console.log来代替值。 我尝试在加载页面时使用 console.log,该行变为 $('#RoleFilter').val('')。 THE @..... 值被忽略。 【参考方案1】:如果您的代码在硬编码值时有效,则必须尝试以下代码以在 ViewBag 中获取值
$(document).ready(function ()
$('[data-toggle="tooltip"]').tooltip();
$('#RoleFilter').val(@Html.Raw(@ViewBag.roleFilter.ToString())); //Accessing the Json Object from ViewBag
);
【讨论】:
以上是关于在@Html.DropDownList 中从控制器端绑定下拉列表选择的值的主要内容,如果未能解决你的问题,请参考以下文章
如何通过手动赋值来使用@Html.DropDownList? [复制]
如何将多个 Html.DropDownList 选定值从 View(.aspx) 传递给 MVC 控制器的操作?
将当前值的 html.dropdownlist 传递给 Actionlink?