【发布时间】:2015-09-19 12:08:12
【问题描述】:
我正在将我的列表传递给一个 mvc 控制器,但我在控制器中得到空值。但是当我的列表在客户端的警报中显示时有值。
ajax 调用
$("#addTiles").click(function() {
userTiles = JSON.stringify({
'userTiles': userTiles
});
alert("Entered function.");
alert(userTiles[0].TileID);
var url = '@Url.Action("AddTiles")';
$.ajax({
type: "GET",
url: url,
data: userTiles,
success: function(d) {
if (d.indexOf('"IsSessionExpired":true') != -1) {
location.reload();
} else {
onAddTilesSuccessful(d);
}
},
error: function() {
errorInOperation();
},
contentType: "application/html; charset=utf-8",
dataType: 'html'
});
});
function onAddTilesSuccessful(e) {
$("#tilesSubmissionMsg").append(e);
}
function errorInOperation(d) {
$("#tilesSubmissionMsg").append("Something went wrong");
}
mvc 控制器
public ActionResult AddTiles(List<UserTilesVM> userTiles)
{
return View();
}
列表模型
public class UserTilesVM
{
public int TileID { get; set; }
public int TopPosition { get; set; }
public int LeftPosition { get; set; }
}
在 javascript 中列出
"{"userTiles":[{"TileID":"3","TopPosition":0,"LeftPosition":0}]}"
我也尝试过使用 stringfy 发送我的列表,但这也不起作用。
【问题讨论】:
-
console中的任何错误? -
您已指定
contentType: 'application/json; charset=utf-8',和contentType: "application/html; charset=utf-8",- 不能同时指定(dataType同上) -
是的,我只提到过一次,错误地粘贴在这里两次
-
现在您已经删除了
json一个(它是您需要删除的html一个,因为您将json发送到控制器)
标签: javascript ajax asp.net-mvc asp.net-mvc-4