【问题标题】:.Net Core 2.0 Angular SPA Routing.Net Core 2.0 Angular SPA 路由
【发布时间】:2026-01-09 16:50:01
【问题描述】:

我最近从 .Net core 2.0 SPA 模板生成了一个新的 Angular SPA 项目。我是 Angular/Typescript 和 HMR 的新手,我认为这可能是问题的一部分。

几乎所有东西都已经工作了一段时间,直到最近我注意到,如果我用 F5 刷新任何页面或手动输入 URL,我会得到一个写有“值”字样的白页。基本上,我能够路由我的页面的唯一方法是单击导航栏上的链接。我有想要访问的 MCV 视图来管理用户、产品和角色。我到达那里的方式是手动输入 URL 示例

我输入 'localhost:53212/roles' 并得到该值页面。此外,在任何 SPA 视图中,如果我点击刷新 f5,我会得到相同的具有价值的白页。在 chrome 调试器中检查带有值的页面后,我注意到它包含在一个“pre”标签中,当我进行搜索时,可以在 Vendor.js 文件中找到该标签,当我导航到“pre”的所有实例时,我得到这段代码

/**

* 用于将 URI 分解为其组成部分的正则表达式。 * * {\@link http://www.gbiv.com/protocols/uri/rfc/rfc3986.html#RFC2234} 说 * 由于“第一场比赛获胜”算法与“贪婪”算法相同 * POSIX正则表达式使用的消歧方法,自然而然 * 使用正则表达式来解析潜在五是司空见惯的事 * URI 引用的组成部分。 * * 以下行是用于分解 a 的正则表达式 * 对其组件的格式良好的 URI 引用。 * *

* ^(([^:/?#]+):)?(//([^/?#]))?([^?#])(\?([^# ]))?(#(.))? * 12 3 4 5 6 7 8 9 * * * 上面第二行的数字只是为了便于阅读;他们 * 表示每个子表达式的参考点(即每对 * 括号)。我们将与子表达式匹配的值称为 $。 * 例如,将上面的表达式匹配到 * * http://www.ics.uci.edu/pub/ietf/uri/#Related * * 导致以下子表达式匹配: * * $1 = http: * $2 = http * $3 = //www.ics.uci.edu * $4 = www.ics.uci.edu * $5 = /pub/ietf/uri/ * $6 = * 7 美元 = * $8 = #相关 * $9 = 相关 * * 其中表示组件不存在,与 * 上例中查询组件的情况。因此,我们可以 * 将五个组件的值确定为 * * 方案 = 2 美元 * 权限 = 4 美元 * 路径 = $5 * 查询 = $7 * 片段 = 9 美元 * * * 正则表达式已稍作修改,以暴露 * 用户信息、域和端口与权限分开。 * 修改后的版本产生 * * $1 = http 方案 * $2 = 用户信息 -\ * $3 = www.ics.uci.edu 域名 |权威 * $4 = 端口 -/ * $5 = /pub/ietf/uri/ 路径 * $6 = 不带查询? * $7 = 没有#的相关片段 *

我真的不明白这一切意味着什么或是否相关。我也认为它可能是 HMR,但同样,这真的很新,无法理解为什么刷新或手动路由会导致问题

感谢您的帮助,我可以根据需要提供更多信息,只是不想被信息淹没甚至无法走上正轨。

【问题讨论】:

    标签: javascript angularjs routing


    【解决方案1】:

    我能够解决这个问题。热模块重新加载影响 F5 刷新问题。如果我禁用 HMR,则 F5 刷新有效。出于某种原因,我虽然 HMR 影响了 MVC 视图,但事实并非如此,简单的解决方案如下。

    至于视图的 MVC 部分,我没有正确的路线。配置的路由是 {controller}/{action} 我只是在控制器中输入。

    如果其他人有一些见解,我很想听听!

    谢谢

    【讨论】: