从 AJAX (ASP.NET MVC) 填充 DropdownList

洛根

我的视图中有下拉列表

 @Html.DropDownList("Question1", null, "Вопрос 1", htmlAttributes: new {@class = "form-control", @style = "height:40px;margin-bottom: 20px;"})

我有显示所有问题的 AJAX 调用

这里是

 function question_update() {
    $(".count").empty();
    $.ajax({
        url: '@Url.Action("QuestionsList", "Questions")',
        contentType: 'application/json; charset=utf-8',
        type: 'GET',
        dataType: 'json',
        processData: false,
        success: function (result) {
            var email = result;
            var edit = '@Url.Content("~/Images/Edit.png")';
            var delete_ = '@Url.Content("~/Images/Delete.png")';
            // console.log(result[0].Name);
            for (var i = 0; i <= email.length - 1; i++) {
                var arrow  = '@Url.Content("~/Images/plus_plus.png")';
                var questionHtml = '<div class = "title" style="margin-top:15px;margin-left:15px;margin-bottom:10px;">'
                    +
                    '<img class="click" src="'
                    + arrow
                    + '">' +
                    '<span class="test">' +
                    '<input type="text" class="testclass" readonly value="' +
                    result[i].Quest + '">' +
                    '<a style="margin-left:25px;">' +
                    '<img src="' + edit + '"/>' +
                    '<img style="margin-left:10px;" src="' + delete_ + '"/>' +
                    '</div>' +
                    '<div class ="content" style="margin-left:60px; width: 80%; height: 100px; background: white;">' +
                    '<div style="width: 100%">' +
                    '<div style="float:left; width: 50%;">' +
                    '<b style="margin-left: 40px;">' + "Время на ответ"  + '</b>' +
                    '<b>' + ":" + '</b>' +
                    '<span>' + "Время на подготовку" +'</span>'+
                    '</div>' +
                    '<div style="float:right; width: 50%;">' +
                    '<b>' + result[i].TimeForAnswer + '</b>' +
                    '<b>' + ":" + '</b>' +
                    '<b>' + result[i].TimeForReady + '</b>'+
                    '</div>' +
                    '</div>' +
                    '</div>';
                $(".count").append(questionHtml);

成功后,我需要更新下拉列表中的值

我把它变成这样

  function question_update() {
    $(".count").empty();
    $.ajax({
        url: '@Url.Action("QuestionsList", "Questions")',
        contentType: 'application/json; charset=utf-8',
        type: 'GET',
        dataType: 'json',
        processData: false,
        success: function (result) {
            var email = result;
            var edit = '@Url.Content("~/Images/Edit.png")';
            var delete_ = '@Url.Content("~/Images/Delete.png")';
            // console.log(result[0].Name);
            for (var i = 0; i <= email.length - 1; i++) {
                var arrow  = '@Url.Content("~/Images/plus_plus.png")';
                var questionHtml = '<div class = "title" style="margin-top:15px;margin-left:15px;margin-bottom:10px;">'
                    +
                    '<img class="click" src="'
                    + arrow
                    + '">' +
                    '<span class="test">' +
                    '<input type="text" class="testclass" readonly value="' +
                    result[i].Quest + '">' +
                    '<a style="margin-left:25px;">' +
                    '<img src="' + edit + '"/>' +
                    '<img style="margin-left:10px;" src="' + delete_ + '"/>' +
                    '</div>' +
                    '<div class ="content" style="margin-left:60px; width: 80%; height: 100px; background: white;">' +
                    '<div style="width: 100%">' +
                    '<div style="float:left; width: 50%;">' +
                    '<b style="margin-left: 40px;">' + "Время на ответ"  + '</b>' +
                    '<b>' + ":" + '</b>' +
                    '<span>' + "Время на подготовку" +'</span>'+
                    '</div>' +
                    '<div style="float:right; width: 50%;">' +
                    '<b>' + result[i].TimeForAnswer + '</b>' +
                    '<b>' + ":" + '</b>' +
                    '<b>' + result[i].TimeForReady + '</b>'+
                    '</div>' +
                    '</div>' +
                    '</div>';
                $(".count").append(questionHtml);

                $.ajax({
                    url: '@Url.Action(" QuestionsList_new", "Questions")',
                    contentType: 'application/json; charset=utf-8',
                    type: 'GET',
                    dataType: 'json',
                    processData: false,
                    success: function (result) {
                        var $vacancy = $("#Question1");
                        $vacancy.empty();
                        $.each(result, function (a, b) {
                            $vacancy.append('<option value="' + b.Value + '">' + b.Text + '</option>');
                        });
                    }
                });
            }
        }
    });
}

但是我在 DropdownList 中没有看到任何更新。

我的问题在哪里?

更新

一切都好。但我有新的问题。在我的下拉列表中,我有undefined.

<select class="form-control" id="Question1" name="Question1" style="height:40px;margin-bottom: 20px;"><option value="undefined">undefined</option><option value="undefined">undefined</option><option value="undefined">undefined</option><option value="undefined">undefined</option><option value="undefined">undefined</option><option value="undefined">undefined</option><option value="undefined">undefined</option><option value="undefined">undefined</option><option value="undefined">undefined</option><option value="undefined">undefined</option><option value="undefined">undefined</option><option value="undefined">undefined</option><option value="undefined">undefined</option><option value="undefined">undefined</option><option value="undefined">undefined</option><option value="undefined">undefined</option><option value="undefined">undefined</option><option value="undefined">undefined</option><option value="undefined">undefined</option><option value="undefined">undefined</option><option value="undefined">undefined</option><option value="undefined">undefined</option></select>

我该如何解决这个问题?

阿戴森

根据您为result从服务器返回变量提供的示例数据

{ ID = 1048, Quest = "тест" }

您的 .each 循环需要如下所示:

$.each(result, function (a, b) {
  $vacancy.append('<option value="' + b.ID + '">' + b.Quest + '</option>');
});

您尝试访问的属性“文本”和“值”在数据中不存在,因此您会得到“未定义”。您需要使用所涉及的实际属性的名称。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在ASP.NET MVC中填充DropDownList

来自分类Dev

在 ASP.NET MVC 中填充 DropDownList

来自分类Dev

使用AJAX MVC 4填充DropDownList

来自分类Dev

用jquery ajax ASP.NET MVC填充下拉列表

来自分类Dev

通过 Ajax 调用填充 ASP.NET MVC Kendo Grid

来自分类Dev

ASP.NET MVC的层叠DropDownList

来自分类Dev

ASP.NET MVC DropDownList替代

来自分类Dev

ASP.NET MVC的层叠DropDownList

来自分类Dev

ASP.NET MVC DropDownList NullReferenceException

来自分类Dev

ASP.NET MVC中的Dropdownlist onchange事件未使用AJAX

来自分类Dev

ASP.NET MVC中的Dropdownlist onchange事件未使用AJAX

来自分类Dev

ASP MVC剃须刀填充Html.DropDownList

来自分类Dev

在 .net 中填充 DropDownList

来自分类Dev

ASP.NET MVC +填充下拉列表

来自分类Dev

Asp.net MVC从FormCollection填充viewModel

来自分类Dev

在MVC 5中填充DropDownList

来自分类Dev

无法使用Ajax填充DropDownList

来自分类Dev

DropDownList selected value not posted to server ASP.NET MVC

来自分类Dev

asp .net mvc 5 dropdownlist SelectList没有验证属性

来自分类Dev

ASP.NET MVC中的DropdownList-未发布值

来自分类Dev

ASP.NET MVC DropDownList SelectedValue转换为ViewBag?

来自分类Dev

ASP.NET MVC DropdownList在滚动时添加项目

来自分类Dev

为ASP.NET MVC5关系创建DropDownList

来自分类Dev

asp.net mvc dropdownlist选项已禁用

来自分类Dev

在DropDownList ASP.NET MVC中获取选定的项目

来自分类Dev

c#ASP.net MVC中的DropDownlist和列表问题

来自分类Dev

ASP.NET MVC dropdownlist在滚动时添加项目

来自分类Dev

asp.net mvc dropdownlist选项已禁用

来自分类Dev

c#ASP.net MVC中的DropDownlist和列表问题