【发布时间】:2020-05-15 06:54:58
【问题描述】:
我的目标是使用 ajax 从我的控制器中检索一些数据并将其附加到我视图中的表格元素中。然而,javascript 代码仅在“$.ajax(” 时才停止运行。我在上述点之后放置了一些断点,但代码从未在这些点“中断”。
这是javascript代码
$(document).ready(function ()
{
$("#DivisionId").change(function () {
var OptionId = $('#DivisionId').val();
var position = 0;
$.ajax(
{
type: 'POST',
url: '@URL.Action("Division")',
dataType: 'json',
data: { DivisionId: OptionId },
success: function (data) {
var LogStandings = '';
$.each(data, function (i, log) {
position++;
var Logs = "<tr>" +
"<td>" + position + "</td>" +
"<td>" + log.Logs1.Team.TeamName + "</td>" +
"<td>" + log.Logs1.Played + "</td>" +
"<td>" + log.Logs1.Win + "</td>" +
"<td>" + log.Logs1.Draw + "</td>" +
"<td>" + log.Logs1.Lost + "</td>" +
"<td>" + log.Logs1.GoalsFor + "</td>" +
"<td>" + log.Logs1.GoalsAgainst + "</td>" +
"<td>" + log.Logs1.GoalDifference + "</td>" +
"<td>" + log.Logs1.Points + "</td>" +
"</tr>";
$('#TheLog').append(Logs);
});
},
error: function (ex) {
var r = jQuery.parseJSON(response.responseText);
alert("Message: " + r.Message);
alert("StackTrace: " + r.StackTrace);
alert("ExceptionType: " + r.ExceptionType);
}
});
return false;
}); // end of Division on change function
})//End of document.ready function
这是我控制器中的代码
public JsonResult Division(int DivisionId)
{
int UnderId = db.Under.FirstOrDefault().UnderID;
MainDivisionId = id;
List<FixtureModel> Fixtures = db.Fixtures.Where(f => f.TeamModel.DivisionId == id && f.TeamModel.UnderId == UnderId).ToList();
List<ResultModel> Results = db.Results.Where(r => r.Fixtures.TeamModel.DivisionId == id && r.Fixtures.TeamModel.UnderId == UnderId).ToList();
List<LogModel> Logs = db.Logs.Where(l => l.Team.DivisionId == id && l.Team.UnderId == UnderId).ToList();
IndexViewModel IndexPage = new IndexViewModel(Fixtures, Results, Logs);
return Json(IndexPage , JsonRequestBehavior.AllowGet);
}
我在互联网上进行了一些搜索,一位消息人士建议我将我的 jquery CDN 放在 head 标签内的视图顶部,但这并没有解决我的问题。除此之外,经过一个小时的搜索,我还没有找到任何其他解决方案。
【问题讨论】:
-
请求到达你的控制器?
-
它没有。 JavaScript代码的执行没有通过“$.Ajax”部分
-
您的 ajax 调用指定了 POST...您的控制器方法上是否有
[HttpPost]属性?另外,你设置的断点到底在哪里?例如,他们是在return false上吗?还是在success或error回调中? -
尝试将
JSON.stringify添加到您的数据中 -
@David784 我没有 [HttpPost] 属性。让我现在试试。断点是 1。就在 ajax 部分的上方,代码在该点中断。 2.通过LogStandings变量,此时代码没有中断。
标签: javascript c# jquery asp.net-mvc asp.net-ajax