Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在淘汰赛中从Ajax填充多选列表_Ajax_Asp.net Mvc_Knockout.js - Fatal编程技术网

在淘汰赛中从Ajax填充多选列表

在淘汰赛中从Ajax填充多选列表,ajax,asp.net-mvc,knockout.js,Ajax,Asp.net Mvc,Knockout.js,我有一个基于Knockoutjs的可编辑表。我一直在尝试从对ASP MVC控制器的AJAX调用填充一个多选下拉列表。我已经看了很多例子,这个,还有这个,但是我仍然有一些问题需要解决 以下是html: <tbody data-bind='foreach: users' class="table-striped"> <tr> <td><input class='required numb

我有一个基于Knockoutjs的可编辑表。我一直在尝试从对ASP MVC控制器的AJAX调用填充一个多选下拉列表。我已经看了很多例子,这个,还有这个,但是我仍然有一些问题需要解决

以下是html:

<tbody data-bind='foreach: users' class="table-striped">
                <tr>
                    <td><input class='required number form-control' maxlength="9" stringlength="9" data-bind='value: id, uniqueName: true' /></td>
                    <td><input class='required form-control' data-bind='value: firstName' /></td>
                    <td><input class='required form-control' data-bind='value: lastName' /></td>
                    <td>
                        <select data-bind="options: MAMUserGroupsListOptions, selectedOptions: MAMSelectedGroup">
                            <!--dropdown list goes here-->
                        </select>

                    </td>

                    <td><a href='#' data-bind='click: $root.removeUser'>Delete</a></td>
                </tr>
            </tbody>
这是控制器:

[HttpGet]
        public ActionResult MAMUserGroupsList()
        {
            var MAMUserGroupsListOptions = db.MAMUserGroupsListModels.Select(x => new {
                MAMUserGroupName = x.MAMUserGroupName
            }).ToList();

            return Json(MAMUserGroupsListOptions, JsonRequestBehavior.AllowGet);


        }
通过AJAX调用控制器时,返回的结果如下:

{MAMUserGroupName: "MAMGroup1"}, {MAMUserGroupName: "MAMGroup2"}, etc...
我正在尝试让多选下拉菜单显示“MAMGroup1”,MAMGroup2等等


在这件事上,我的头撞到了墙上,如果有任何帮助,我将不胜感激。

看起来你只是想通过对象数组来提取感兴趣的一个值。如果从名为ajaxResult的变量中的结果开始

MAMUserGroupsListOptions(ajaxResult.map(obj => obj.MAMUserGroupName));
将值分配给可观察数组。或者,如果在创建viewmodel时该值可用

MAMUserGroupsListOptions: ko.observable(ajaxResult.map(obj => obj.MAMUserGroupName))

它返回一个对象数组?对不起,我对Javascript有点陌生。当我将其写入控制台时,从技术上讲,它看起来像:[Object,Object,Object,Object,Object]0:Object-MAMUserGroupName:“MAMGroup1”,除非我遗漏了您的意思,否则您是否省略了冒号?MamUserGroupsStopOptions:(ajaxResult.map(obj=>obj.MAMUserGroupName));不,您通过将其作为参数传递给可观察对象来为其赋值。我假设您在ajax结果可用之前创建了viewmodel。请参阅更新的答案。
MAMUserGroupsListOptions: ko.observable(ajaxResult.map(obj => obj.MAMUserGroupName))