无法通过 ASP.NET Core 中的 JQuery ActionResult 调用加载部分视图

Posted

技术标签:

【中文标题】无法通过 ASP.NET Core 中的 JQuery ActionResult 调用加载部分视图【英文标题】:Unable to load Partial View via JQuery ActionResult call in ASP.NET Core 【发布时间】:2019-11-21 13:47:18 【问题描述】:

我被这个问题困住了几个小时,如果不是几天的话。

我可以启动返回 PartialView("MODEL") 的 ActionResult,但我无法将实际视图呈现到索引 cshtml 页面内的 div 中。

这是我正在尝试的:

控制器:

...
public ActionResult Calendar()
    
        PopulateCalendarAsync();
        return PartialView(_calendarViewModel);
    
...

索引.cshtml:

<div id="calendarDiv" ></div>

索引内的脚本:

<script type="text/javascript">
$(document).ready(function (e) 
    $.get('@Url.Action("Calendar","Home")', , function (result) 
        $("#calendarDiv").load("~/Home/Calendar");

    );
);

当索引页面加载时,脚本调用 ActionResult Calendar() 没有问题。

问题是 div 没有更新。

我的 Calendar.cshtml 页面位于主文件夹中的索引页面旁边。

我在这里错过了什么?

【问题讨论】:

【参考方案1】:

$.get 请求的result 参数将包含日历局部视图的html 输出。 通过$("#calendarDiv").html(result);将其分配给&lt;div&gt;

完整代码:

$(document).ready(function (e) 
    $.get('@Url.Action("Calendar","Home")')
        .then(function (result) 
             $("#calendarDiv").html(result);
         )
        .fail(function (xhqr, status, error) 
            alert(status);
            alert(JSON.stringify(xhqr));
        )
);

【讨论】:

result 的值是多少? 我需要检查一下,不知道如何在 jquery 中执行此操作... alert(result.ToString?) 只要alert(result) 就可以了。 它没有弹出 那么可能发生了错误;我更新了我的答案以抓住任何问题。

以上是关于无法通过 ASP.NET Core 中的 JQuery ActionResult 调用加载部分视图的主要内容,如果未能解决你的问题,请参考以下文章

asp.net core 2.0 中的 WCF - 无法为具有权限的 SSL/TLS 安全通道建立信任关系

ASP.NET Core JWT 令牌无法通过 HttpClient 工作

Mediatr 无法解析 ASP.Net Core 中的 UserManager

如何通过 ASP.NET Core 中的链接发布

无法将 JSON 发布到 ASP.NET Core RazorPage 处理程序

C#:使用 IQueryable 注入 DbContext 时,无法访问 ASP.NET Core 中的已处置对象