我认为这对您来说很奇怪,因为我为此不知所措。在表格中的屏幕上,我点击了一个链接,该链接触发了javascript / ajax请求。我在另一个屏幕上有类似的代码,当它进入ajax调用的成功部分并在该调用的成功部分中运行代码时,它可以完美地工作。由于某种原因,尽管我似乎无法使它正常工作,并且在chrome中调试它时,我失去了断点,而且它似乎从未进入Ajax调用的成功部分。
@section scripts{
<script>
// Get the bond ID Data from the row selected and return that to the program.
function getIDData(el) {
var ID = $(el).closest('tr').children('td:first').text();
var iddata = {
'ID': ID
}
console.log(iddata);
return iddata;
}
// Submit the data to a function in the .cs portion of this razor page.
$('.updatelink').click(function () {
var bondid = JSON.stringify(getIDData(this));
$.ajax({
url: '/Maintenance/Bond_Maint?handler=UpdateandReloadData',
beforeSend: function (xhr) {
xhr.setRequestHeader("XSRF-TOKEN",
$('input:hidden[name="__RequestVerificationToken"]').val());
},
type: 'POST',
dataType: 'json',
data: { bondid: bondid },
success: function (result) {
if (result.pass != undefined) {
document.forms[0].submit();
}
},
});
});
</script>
}
正在调用的ASP.net代码对数据库进行更新,然后将包含成功的变量作为消息传递回去。
//-------------------------------------------------------------------------------
// Try to get and insert the data from a selected row and copy it
//-------------------------------------------------------------------------------
public ActionResult OnPostUpdateandReloadData(string bondid)
{
return new JsonResult(new { pass = "Success" });
}
除了通过浏览器调试我的其他代码外,我不确定其他如何描述我的问题,这似乎与该代码采用的路径不同,我无法理解原因。作为参考,我的其他代码如下:
@section scripts{
<script>
// Get the offender ID Data from the row selected and return that to the program.
function getIDData(el) {
var ID = $(el).closest('tr').children('td:first').text();
var iddata = {
'ID': ID
}
console.log(iddata);
return iddata;
}
// Submit the data to a function in the .cs portion of this razor page.
$('.copybtn').click(function () {
var offenderid = JSON.stringify(getIDData(this));
$.ajax({
url: '/Copy_Old_Account?handler=CopyData',
beforeSend: function (xhr) {
xhr.setRequestHeader("XSRF-TOKEN",
$('input:hidden[name="__RequestVerificationToken"]').val());
},
type: 'POST',
dataType: 'json',
data: { offenderid: offenderid },
success: function (result) {
if (result.path != undefined) {
window.location.replace(result.path);
}
},
});
});
</script>
}
任何帮助将不胜感激。
答案 0 :(得分:0)
好的,首先,谢谢大家回答我的问题。弗兰克·弗里特(Frank Writte)和阿尔弗雷德(Alfred)通过在网络标签中查找我的通话状态为我指明了正确的方向。我发现我的要求被取消了。在调查之后,我发现这篇文章What does status=canceled for a resource mean in Chrome Developer Tools?有FUCO的回答,它给了我我需要做的事情。显然我需要添加event.preventDefault();在我的ajax调用之前,突然我的代码工作了。我不确定我是否完全理解为什么这样做,但是我不能抱怨结果。再次感谢大家的帮助。整个早晨,这件事一直困扰着我。