在@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 控制器的操作?

从 DropDownList 将数据发布到 MVC 控制器

将当前值的 html.dropdownlist 传递给 Actionlink?

.net MVC使用一个下拉框 ,Html.DropDownList出错

如何使用 asp.net mvc Html.DropDownList 帮助器将自定义项添加到下拉列表的顶部?