首页 > 解决方案 > 查看组件未正确加载 css 和 js 不适用于 ajax 调用

问题描述

您好我正在尝试在单击按钮时使用 ajax 加载视图组件。但是视图组件确实可以正常工作,似乎 css 和 js 无法正常工作。

这是控制器加载组件的ajax调用

$.ajax({
  url: window.location.origin + "/TestDashbook/LoadComponent",
  type: "post",
  dataType: "json",
  data: { 'dbid' : dbid },
  complete: function (result) {
        $("#divcontent").empty();
        $("#divcontent").html(result.responseText);
  }
});

这是控制器

        [HttpPost]
        public async Task<IActionResult> LoadComponent(string dbid)
        {
            var dashtabcount = "0";
            var companyId = "1";
            var defaultdashbooklist = await dashbookService.FetchDefaultDashbooks();
            var dashbooklist = await dashbookService.FetchDashbooks(companyId);
            List<DashbookModelView> dblist = new List<DashbookModelView>();
            DashbookModelView dbmodel = dashbooklist.Where(s => s._id.ToString() == dbid).FirstOrDefault();
            return ViewComponent("TestMultiDash", new { dashbookModel = dbmodel, dashtabcount = dashtabcount, companyId = companyId });
        }

这是输出

在此处输入图像描述

这就是它应该的样子

在此处输入图像描述

标签: c#jqueryajaxasp.net-mvcasp.net-core

解决方案


您正在使用complete不会收到您发回的数据的回调。您正在寻找的是success回调。

从规格:

complete
类型:Function(jqXHR jqXHR, String textStatus)
请求完成时调用的函数(在执行成功和错误回调之后)。该函数获得两个参数:jqXHR(在 jQuery 1.4.x 中,XMLHTTPRequest)对象和一个对请求状态进行分类的字符串(“成功”、“未修改”、“无内容”、“错误”、“超时”、“中止”或“解析器错误”)。从 jQuery 1.5 开始,完整的设置可以接受一个函数数组。每个函数都会被依次调用。这是一个 Ajax 事件。

success
类型:Function(anything data, String textStatus, jqXHR jqXHR)
请求成功时调用的函数。该函数传递三个参数: 从服务器返回的数据,根据 dataType 参数或 dataFilter 回调函数(如果指定)进行格式化;描述状态的字符串;和 jqXHR(在 jQuery 1.4.x 中,XMLHttpRequest)对象。从 jQuery 1.5 开始,success 设置可以接受一个函数数组。每个函数都会被依次调用。这是一个 Ajax 事件。

有关更多详细信息,请参阅jquery 文档


推荐阅读