【发布时间】:2016-07-07 16:56:06
【问题描述】:
我使用 ASP.NET MVC 5 制作一个网络应用程序,在我看来要列出电影及其类型时,我得到了这个错误:
DataTables 警告:table id=movies - 请求第 0 行第 1 列的未知参数“genre.name”。有关此错误的详细信息,请参阅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.namecode 是问题所在。流派模型只有两个字段,并从数据库中获取信息。感谢您的帮助。
这是我的 api/movies 控制器中的 get 方法:
public IEnumerable<MovieDto> GetMovies()
{
return _context.Movies
.Include(m => m.GenreSet)
.ToList()
.Select(Mapper.Map<Movie, MovieDto>);
}
MovieDto 类有一个成员字段 GenreSetDto,它是从我的 GenreSet 类映射而来的。
编辑: 这是我得到的数据:
[
{
"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,因为我在电影数据库中分配了它。
【问题讨论】:
-
您的数据响应中有
name和genre.name? -
我不确定这是什么意思,对不起。
name在我加载页面时没有渲染问题,只有genre.name。 -
什么是返回
/api/movies??? -
@ecain 您应该发布从服务器发送到客户端的 JSON 数据,因为这可能是您的
genre.name错误的来源。 CMedina 大概就是这个意思;您收到此错误是因为 JSON 数据中没有genre.name对象。 -
@CMedina
/api/movies是 web api 控制器。 @Chris H. 当我使用邮递员查看我的 JSON 数据时,我只是得到 Unexpected '
标签: c# jquery asp.net-mvc datatables