【发布时间】:2020-08-18 18:51:52
【问题描述】:
我正在开发一个 .NET Core MVC 应用程序,我在局部视图中添加了 JavaScript 代码,JavaScript 代码正在访问控制器的功能,但没有达到 Ajax 调用的成功功能。 下面是我的 JavaScript 代码,代码在页面加载时执行
<script type="text/javascript">
$(document).ready(function () {
debugger;
$.ajax({
type: 'GET',
url: '@Url.Action("getMenurights","Home")',
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: OnSuccessMenuRights,
failure: function (data) {
alert(data);
}
});
});
</script>
控制器代码:-
public string getMenuRights()
{
string result = "";
if (!string.IsNullOrEmpty(HttpContext.Session.GetString("UserId")as string))
{
Home objHome = new Home();
DataTable dtMenuRights = new DataTable();
dtMenuRights = objHome.GetMenuRights(HttpContext.Session.GetString("UserId").ToString());
List<DataRow> MenuList = dtMenuRights.AsEnumerable().ToList();
TempData["MenuRights"] = dtMenuRights;
if (MenuList.Count > 0)
{
ViewBag.MenuList = MenuList;
}
TempData.Keep("MenuRights");
//var x = TempData["MenuRights"];
JsonSerializerSettings jss =
new JsonSerializerSettings { ReferenceLoopHandling =ReferenceLoopHandling.Ignore };
result = JsonConvert.SerializeObject(dtMenuRights, Formatting.Indented, jss);
}
return result;
}
【问题讨论】:
-
也分享成功函数体。另外,首先尝试成功地直接编写一个函数,就像你写的错误一样。并检查响应数据中的内容。不要使用 alert ,而是使用 console.log
-
你的状态码是什么?你得到什么 id 失败函数数据?
-
你可能想要检查错误:error: function (jqXHR, textStatus, error) { errortext = error + jqXHR.responseText;警报(错误文本); }(而不是“失败:”)
-
我在错误字符串中得到空值,状态也是 500 错误
标签: c# jquery ajax asp.net-core model-view-controller