【问题标题】:Angularjs web api rewrite url rule, for url with parameterAngularjs web api重写url规则,用于带参数的url
【发布时间】:2014-11-11 16:11:13
【问题描述】:

我正在使用 Angularjs 和 .Net 的 web api 开发 SPA 应用程序。这一切似乎都有效,为了能够刷新我的页面,我已经在我的 web.config 文件中添加了如下规则,除了一个之外,它们都可以工作,当我刷新具有参数的详细信息页面时,类似于 http://domain/traveldetail/135。请告知我应该如何处理这个问题:

Web.config 的重写部分:

    <rewrite>
      <rules>
        <rule name="TravelList" stopProcessing="true">
          <match url="^travellist" />
          <action type="Rewrite" url="/" />
        </rule>
        <rule name="TravelDetail" stopProcessing="true">  <!--NOT WORKING-->
          <match url="^traveldetail/:travelId" />
          <action type="Rewrite" url="/" />
        </rule>
        <rule name="AdvancedSearch" stopProcessing="true">
          <match url="^advancedsearch" />
          <action type="Rewrite" url="/" />
        </rule>
        <rule name="CreditCardMatcher" stopProcessing="true">
          <match url="^creditcardmatcher" />
          <action type="Rewrite" url="/" />
        </rule>
        <rule name="ApprovalGroups" stopProcessing="true">
          <match url="^approvalgroups" />
          <action type="Rewrite" url="/" />
        </rule>
        <rule name="Help" stopProcessing="true">
          <match url="^help" />
          <action type="Rewrite" url="/" />
        </rule>
      </rules>
    </rewrite>

【问题讨论】:

  • 我遇到了同样的问题。你有什么发现吗?
  • 我被调到另一个项目,所以我没有机会进一步研究

标签: angularjs url-rewriting web-config page-refresh


【解决方案1】:

它不起作用,因为 url="^traveldetail/:travelId" 中的 :travelId 是 AngularJS 的参数表示法,而不是有效的正则表达式。

将其更改为:url="^traveldetail/(.+)",它应该可以工作。

【讨论】:

    猜你喜欢
    • 2011-06-21
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    • 1970-01-01
    • 2011-10-22
    • 2018-11-21
    • 1970-01-01
    相关资源
    最近更新 更多