使用jQuery Ajax调用RenderBody

问题描述 投票:0回答:1

我认为我在.Net Core中做错了。

我有@RenderBody布局

问题是 - 我正在做jQuery Ajax调用,我的操作返回我的部分视图。这很好用。

问题是,我在URL中看不到Controller和Action的任何路径,无法刷新页面,我回到了Home。

部分视图我无法解决的另一个问题是 - 脚本:我可以在Layout中包含所有脚本,但是一些部分视图需要2-3个脚本,另一个部分视图不同2-3个脚本。我不能分割用法,我不想把所有内容都放在一个布局中。

无法在部分视图中添加它们,因为jQuery会在最后加载。

如果我将它们包含在布局页面的末尾 - 那么当我导航到不同的局部视图时,单击事件和其他东西就可以了。

我认为我的方法在某处非常糟糕,我所有的导航都是由jQuery Ajax完成并从控制器返回部分视图。

c# asp.net-mvc asp.net-core
1个回答
0
投票

看来你正试图创建一个SPA(单页面应用程序),而不是真正了解它的内容。

现在,您正在管理应用程序服务器端,即您的路由是服务器端,您的视图是服务器端等。因此,您需要在服务器之间来回移动以获取“页面” ,这否定了拥有客户端应用程序的全部意义。您需要做的是使用Angular,React,Vue等框架对所有客户端进行洗牌。

这些框架将为您的模板,双向数据绑定,客户端路由提供一些东西(包括使用历史API之类的东西来创建虚拟URL,允许您来回浏览,重新加载等,而不会丢失您的客户端 - 边国)。此时,您的后端ASP.NET Core应用程序变得更像API,只是处理与客户端应用程序之间的数据传输以及类似数据库等的数据传输。

您可能也对Blazor感兴趣,特别是服务器端Blazor。这是开发的早期阶段,因此开始构建任务关键型应用程序可能不是一个好主意,但它确实为客户端体验提供了更加流畅的服务器端。从本质上讲,它创建了反应式HTML文档,它使用SignalR在透明地与服务器进行通信,以获取/更新状态并使服务器端和客户端部分保持同步。它很漂亮,但就像我说的那样,此时仍然是一个“预览”。

© www.soinside.com 2019 - 2024. All rights reserved.