C# 在JsonResult之后不调用Ajax success
我试图使用C# 在JsonResult之后不调用Ajax success,c#,jquery,ajax,asp.net-mvc-4,C#,Jquery,Ajax,Asp.net Mvc 4,我试图使用Ajax将记录添加到数据库中,如果成功,则从JsonResult获取数据,以便进一步调用函数,但总是出现错误:parseerror。但是,记录被插入到DB中 以下是我的发帖方法: $("body").on("click", "#btnAdd", function () { var txtTermName = $("#txtTermsName"); var txtAlternativeTerms = $("#txtAlternativeTerms");
Ajax
将记录添加到数据库中,如果成功,则从JsonResult
获取数据,以便进一步调用函数,但总是出现错误:parseerror
。但是,记录被插入到DB中
以下是我的发帖方法:
$("body").on("click", "#btnAdd", function () {
var txtTermName = $("#txtTermsName");
var txtAlternativeTerms = $("#txtAlternativeTerms");
$.ajax({
type: "POST",
url: "/Administration/AddTerm",
data: '{name: "' + txtTermName.val() + '", alternatives: "' + txtAlternativeTerms.val() + '" }',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
var row = $("#tblTerms tr:last-child");
if ($("#tblTerms tr:last-child span").eq(0).html() != " ") {
row = row.clone();
}
AppendRow(row, r.Name, r.Alternatives);
txtTermName.val("");
txtAlternativeTerms.val("");
},
error: function(textStatus, errorThrown) {
alert("Error: " + errorThrown);
}
});
});
我的控制器JsonResult
:
[HttpPost]
public JsonResult AddTerm(Term term)
{
this.SaveTerm(term);
return Json(term);
}
如有任何意见或建议,我们将不胜感激
更新
Json(术语).数据
内容:
- Json(term).Data {Models.Term} object {Models.Term}
+ ChangedBy
Description null string
ID 27 int
Inactive false bool
Name "sdfgdsgf" string
SynonymsList "sdfgdsgfdsgsdgf" string
+ Updated {09.08.2018 10:00:50} System.DateTime
看起来在数据库save调用之后的某个地方调用了异常(我认为SaveTerm方法不仅仅是保存项?),导致返回一个错误页面而不是JSON,因此出现了解析错误
尝试将Try{}Catch{}添加到操作中,我估计会从SaveTerm方法中捕获一个异常。错误是什么?浏览器网络选项卡告诉什么是为帖子返回的?可能不相关,但这是一种生成数据的丑陋而脆弱的方式-只需使用
数据:{name:txtermname.val(),可选项:txtAlternativeTerms.val()},并删除
contentType`option@tolik如果您曾经看到[object object]
,则浏览器隐藏了它的实际内容(最有可能的情况是您执行了警报(textStatus)
,或者更糟的是,警报(“textStatus:+textStatus”)
。你不能将字符串与对象组合,所以只要始终console.log(“textStatus”,textStatus)
(注意逗号,而不是+
)@mjwills,基本上状态是:200ok
和term.GetType()={Name=“term”FullName=“AppNS.Models.term”}
。如果我是Json(term).GetType())
,然后显然是{Name=“JsonResult”FullName=“System.Web.Mvc.JsonResult”}
和/或逐步检查代码,以确保返回Json(也可能是Json序列化失败)@Milney试图围绕这个问题。SaveTerm(term);使用try-catch,但没有问题。@tolik-Hmm,您的模型类型中有日期时间类型吗?可能是转换了不正确的日期,可能是由于区域原因settings@freedomn-m、 “逐步执行”是什么意思?我在返回时放置了一个断点,返回结果的数据属性与term@tolidJSON结果是应该有一个带有实际JSON的value属性,将其发布到您的问题中,我们可以查看它是否有效