如何使用Angular和MVC修复页面刷新问题?

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

我在MVC 5中使用角度5,我在这里使用角度路由。一切正常,但是当浏览器地址栏上有一个角度路由URL并且我正在做F5时它会给出错误 - 无法找到资源。

我确定它是因为这个URL模式与我的MVC路由不匹配,但它与角度路由匹配。

怎么解决这个?

c# asp.net-mvc angular
2个回答
1
投票

解决这个问题很简单。在导入模块中执行此操作:RouterModule.forRoot(routes,{useHash:true})。在这种情况下,散列后的Url不再被发送到您的服务器端。有关更多信息,请访问here


0
投票

你可能需要为IIS安装UrlRewriter模块,然后你需要在web.configsystem.webServer/rewrite/rules中拥有以下内容

<rule name="Angular Routes" stopProcessing="true">
  <match url=".*" />
  <conditions logicalGrouping="MatchAll">
    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
  </conditions>
  <action type="Rewrite" url="/Home/Index?url={UrlEncode:{R:0}}" />
</rule>

重写规则的细节虽然取决于您的应用程序。我正在我的Home/Index视图中连接我的角度根html节点。如果您采用不同的方式,则必须更新它以路由到您期望的位置。

Angular docs

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