2016-07-07 73 views
0

我使用ASP.NET MVC 5使Web应用程序,在我看来,列出电影和他们的风格我得到这个错误:ASP.NET - jQuery的数据表要求的未知参数错误

DataTables warning: table id=movies - Requested unknown parameter 'genre.name' for row 0, column 1. For more information about this error, please see http://datatables.net/tn/4

我的脚本在我看来:

var table = $("#movies").DataTable({ 
      ajax: { 
       url: "/api/movies", 
       dataSrc: "" 
      }, 
      columns: [ 
       { 
        data: "name", 
        render: function(data, type, movie) { 
         return "<a href='/movies/edit/" + movie.id + "'>" + movie.name + "</a>"; 
        } 
       }, 
       { 
        data: "genre.name" 
       }, 
       { 
        data: "id", 
        render: function(data) { 
         return "<button class='btn-link js-delete' data-movie-id=" + data + ">Delete</button>"; 
        } 
       } 
      ] 

我认为genre.name代码是问题。流派模型只有两个字段,并从数据库中获取信息。感谢您的帮助。

这里是我的API /电影控制器get方法:

public IEnumerable<MovieDto> GetMovies() 
    { 
     return _context.Movies 
      .Include(m => m.GenreSet) 
      .ToList() 
      .Select(Mapper.Map<Movie, MovieDto>); 
    } 

MovieDto类有已经从我的GenreSet类映射到一个成员字段GenreSetDto

编辑: 这是我得到的数据:

[ 
{ 
"id": 1, 
"name": "Hangover", 
"genreId": 0, 
"genre": null, 
"dateAdded": "2009-04-03T00:00:00", 
"releaseDate": "2009-02-03T00:00:00", 
"numberInStock": 5 
} 
] 

我现在看到,这个问题是genreId为零,因为我没有对应的是,在一个流派是空数据库。 genreId不应该是零,但它应该是2,因为我在电影数据库中分配它。

+0

你在你的数据响应中有'name'和'genre.name'? – CMedina

+0

我不确定这是什么意思,我很抱歉。 'name'在加载页面时没有问题,只有'genre.name'。 – ecain

+0

什么是返回'/ api /电影'? – CMedina

回答

1

似乎“流派”属性不包含在您的api调用中,如果您使用实体框架检查生成的sql是否包含外部表?

+0

风格属性应该包括,但不应该吗?电影模型具有流派领域。如何检查生成的sql是否包含外部表? – ecain

+0

我觉得这篇文章可以帮到你,请看看 https://msdn.microsoft.com/en-ca/data/jj574232.aspx –