使用部分视图还是刷新整个页面?

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

我有一个 ASP.NET Core 7 MVC 项目,其布局如下所示。

Image

默认 URL 为

https://myurl/Home

我的问题是:当我单击左侧选项卡上的任何菜单导航到该页面时,使用时有什么差异/担忧/安全问题:

  • AJAX调用仅修改html部分视图(意味着URL保持不变)
  • 直接路由到菜单URL(URL将更改为
    https://myurl/UserProfile
asp.net-core-mvc asp.net-core-7.0
1个回答
0
投票

Ajax就是用来弥补缺点的。但在你的要求中,如果我是你,我会使用

Directly route to the menu URL
,因为它用于这个场景。

当我们在MVC项目中想要提交数据但又不使用Ajax时,通常会使用表单提交。使用表单提交时,我们必须提交所有表单元素,它是同步,并且会返回整个页面。使用Ajax会使进度异步,只发送需要的数据返回,这样性能会更好(传输的数据更少)。

同时,当我们使用Ajax发送请求时,当前页面仍然负责,如果需要响应来更新当前页面,则更新应该是无缝的。顺便说一句,使用ajax可以让我们轻松访问外部资源,我们只需要定义url和参数,与form相比,设置controller和action带来了很多麻烦和限制。

但是,当我们想要在不同的导航菜单之间切换时,布局中已经有了菜单按钮,这对数据传输没有影响,我们只是想打开另一个页面,

<a href="/xx">
就足够了。因此,使用
Directly route
应该是这里的最佳选择。 AJAX调用修改html部分视图听起来像是将所有页面识别为部分视图并将所需的部分视图放入唯一的主页中,我认为这将在将来带来维护问题。

在安全领域,ajax和导航路由没有区别。当我们考虑到安全问题时,我们总是会想到基于传输层协议TCP/IP的http和https。 Ajax和导航路由是应用层,在这一层我们可能会做一些操作,比如监控和禁止浏览器的开发模式,这样就可以防止用户改变js和html内容。

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