jquery - 无法在标签中显示 $.ajax 结果
问题描述
我使用 Razor 创建了一个 MVC ASP.Net 视图,如果我重新加载视图(将搜索参数发送到特定控制器,然后重新加载视图以显示应有的结果),该视图的搜索工作就很好。
但是现在我需要使用 jQuery 将搜索参数发送到控制器并在我的视图的特定标签中接收/显示结果。我在搜索点击事件中对此进行了编码
$.ajax({
type: "POST",
url: '@Url.Action(actionName: "PrecalificacionLibreGestion", controllerName: "Home")',
datatype: "json",
contentType: "application/json",
data: JSON.stringify({
NUMERO: numero,
NIT: nit
}),
beforeSend: function() {
$("#loader").show();
},
success: function(data) {
$("#loader").hide();
if (data.respuesta == "OK") {
$("#lblPrecalificacion").empty();
$("#lblAccion").empty();
$("#lblPrograma").empty();
$("#lblPrecalificacion").val("CODIGO PROGRAMA: " + data.codigo_programa);
$("#lblAccion").val("ACCIÓN FORMATIVA: " + data.accion_formativa);
$("#lblPrograma").val("PROGRAMA: " + data.precalificacion);
}
if (data.respuesta == "OKNO") {
alert("no se encontró");
}
}
});
它将两个参数发送到控制器,控制器根据搜索参数返回正确的信息,但我无法在label
元素中显示信息。
我得到的是一个空网页,其结果为 JSON 格式,如下所示:
你能告诉我我做错了什么吗?
这是搜索按钮
<button class="btn btn-default" type="submit" id="btn-buscar"><span class="glyphicon glyphicon-search"></span></button>
解决方案
当您在单击提交按钮下运行代码时,问题是表单提交在您的 AJAX 逻辑运行之前导致页面重定向。要解决此问题,您需要调用preventDefault()
引发的事件。
然而,一个更好的主意是挂钩submit
父form
元素的事件而不是单击按钮。尝试这个:
$('#yourForm').on('submit', function(e) {
e.preventDefault();
$.ajax({
// your AJAX logic here...
});
});
推荐阅读
- javascript - 根据用户模型中的变量添加 CCS 类
- windows - Robocopy /mov 记录目标文件夹中的所有文件?
- c# - 为 AppShell.xaml 中指定的页面之外的页面定义路由并导航到这些页面
- css - 如何在 Bootstrap 导航栏中设置汉堡菜单中的项目样式?
- python - 如何将 PayPal 用户的佣金添加到使用 v2 的用户交易中
- c# - 访问 Microsoft.Extensions.Hosting 服务时出现问题。使用 AddPooledDbContextFactory
- python-3.x - 从数据框中删除字符返回连接的字符串
- xaml - BackGroundColor 从上到下渐变
- c++ - 重载和赋值运算符
- c# - 通过启用 Azure 目录的 Azure 代理访问 On Premise Api