Json 使用mvc5的数据库中的值未显示在列表框中

Json 使用mvc5的数据库中的值未显示在列表框中,json,asp.net-mvc,sql-server-2012,Json,Asp.net Mvc,Sql Server 2012,在控制器json方法中,在ReportColumnsList中获取这样的列名(帐户、EmailTo、主题、MessageContent)。但我需要在视图页面中传递这些值,并在列表框中显示。。 数据以[Object Object]的形式获取,并在列表框中显示,如下所示。。 请给我关于这个的解决办法 谢谢和问候 在控制器部分:- [AllowAnonymous] 公共操作结果GetColumnsByFavouriterReport(报表模型、字符串列) { List ReportColumnsLis

在控制器json方法中,在ReportColumnsList中获取这样的列名(帐户、EmailTo、主题、MessageContent)。但我需要在视图页面中传递这些值,并在列表框中显示。。 数据以[Object Object]的形式获取,并在列表框中显示,如下所示。。 请给我关于这个的解决办法

谢谢和问候

在控制器部分:-
[AllowAnonymous]
公共操作结果GetColumnsByFavouriterReport(报表模型、字符串列)
{
List ReportColumnsList=MCPAdminControllerPageObject.GetColumnsByReportName(列);
返回Json(ReportColumnsList,JsonRequestBehavior.AllowGet);
}
鉴于部分:-

 $(document).ready(function () {
      $('#FavouriteReports').change(function () {
          $.ajax({
              type: "POST",
              url: '@Url.Action("GetColumnsByFavouriteReport", "MCPAdmin")',
              data: { Columns: $('#FavouriteReports').val() },
              datatype: "json",
              traditional: true,
              success: function (data) {

                  $('#SelectedFields').empty();
                  $.each(data, function (key, val) {
                      $('#SelectedFields').append('<option id="' + key + '">' + val + '</option>');
                  })

              }
          });
      });

@Html.ListBoxFor(m => m.SelectedFields, new SelectList(new[] { "" }), new { @class = "form-control editable" })     
$(文档).ready(函数(){
$('#FavoriteReports')。更改(函数(){
$.ajax({
类型:“POST”,
url:'@url.Action(“GetColumnsByFavouritereReport”、“MCPAdmin”),
数据:{列:$('#FavoriteReports').val()},
数据类型:“json”,
传统的:是的,
成功:功能(数据){
$('#SelectedFields').empty();
$。每个(数据、函数(键、值){
$(“#SelectedFields”).append(“”+val+“”);
})
}
});
});
@Html.ListBoxFor(m=>m.SelectedFields,new SelectList(new[]{”“}),new{@class=“form control editable”})

让我假设您的模型类报告

   public class Report {

    public int ReportId { get; set; }
    public Name ReportName { get; set; }
   }
在ajax方法内部

   if(data!=null) {
    $('#SelectedFields').empty();
     var dd = null ;
    $.each(data, function (key, val) {
       dd += "<option " + " value=" + val.ReportId + ">" + val.ReportName + "</option>";
        });
   //append to given id
    $('#SelectedFields').append(dd);
        }
if(数据!=null){
$('#SelectedFields').empty();
var-dd=null;
$。每个(数据、函数(键、值){
dd+=“”+val.ReportName+“”;
});
//附加到给定id
$('#SelectedFields')。追加(dd);
}

我希望这将有助于您的,绑定您的下拉列表

您从ajax请求中得到响应了吗?控制台中有任何错误吗?您在
警报(JSON.stringify(data));
中得到了什么?您还可以为
@html.ListBoxFor(
删除
数据=JSON.stringify(data)
$.each()
功能参数是索引和项目(不是键和val)。返回的模型是什么?它包含哪些属性,用于每个选项的值和文本
JSON。stringify
返回JSON对象,并且在AJAX
success
data
可能已经包含JSON字符串-因为
jQuery。每个
使用索引和值参数,然后
stringify
方法可能完全没有必要。如果我删除了data=JSON.stringify(data)意味着在数据中获得这样的[Object Object],我需要在列表框中显示值..而不是下拉列表
   if(data!=null) {
    $('#SelectedFields').empty();
     var dd = null ;
    $.each(data, function (key, val) {
       dd += "<option " + " value=" + val.ReportId + ">" + val.ReportName + "</option>";
        });
   //append to given id
    $('#SelectedFields').append(dd);
        }