MVC 路由与 Angular 路由:仅仅使用 MVC 路由还不够吗?

MVC Routing vs Angular Routing: Is not enough with just MVC Routing?

据我所知,哈希符号(#) 是在Angular 中实现路由的关键。 Web 服务器只关心散列之前的 URL 部分,Angular 负责其余部分。

我读过一些解释如何从 URL 中删除散列的文章。但是,如果我从 URL 中删除散列 (#):哪个路由最先工作?

好的,是MVC。在那种情况下,我们必须编辑 MVC 路由以便服务器理解 URL。但我们又回到了起点。 Angular 路由和 MVC 一起使用有意义吗? MVC 路由还不够吗?

也许我遗漏了什么。我希望你能帮助我。

Does it make any sense to use Angular Routing and MVC together ? Is not enough with MVC Routing?

TL;DR;

我很少同时使用两者。我唯一一次同时使用两者是当我需要对某些路由的用户进行身份验证时。

长答案

1. 身份验证

如您所知,当您想导航到另一个页面而无需往返服务器时,Angular 路由非常有用。通常是SPA。但是可能会有这样一种情况,当您需要在发送 HTML 之前对用户进行身份验证时,这时 MVC 路由就派上用场了。我写了一篇。请注意发送 HTML 和发送 DATA 到客户端之间的区别。如果您没有服务器路由,html 页面(或模板)将完全可访问(除非您以 web.config 或其他方式限制访问)。有时 HTML 页面也可能包含一些敏感信息...

最常见的情况是,如果您有一个带有管理部分的 public 站点。但根据我的经验,您可以仅使用客户端路由在客户端处理此问题。通常敏感的是数据,而不是模板。

2. 服务器端日志记录

另一种情况是当您想在服务器端进行一些日志记录时。例如,如果您想记录每个页面请求。这通常也可以在客户端上完成...查看 Google 分析。但是即使浏览器 javascript 已关闭,您也可能希望记录请求。

3. SEO

使用客户端路由时有 might be some SEO-issues。但这仅当我们使用客户端模板渲染 html 并且与使用 MVC.Net 完全渲染的视图进行比较时。不要混淆我发布 link 和我实际上同意内容...

4. WCAG

在我的国家/地区,所有政府网站都需要遵循 WCAG。其中一项规则是 - no javascript。或者至少该网站应该可以在没有 javascript 的情况下完全访问。没有 javascript 客户端路由 非常困难 。 ;)

这些是您可能同时需要服务器端和客户端路由的一些示例。 但总而言之,大多数情况下客户端就足够了。