Angularjs web api重写url规则,用于带参数的url

时间:2014-09-17 14:44:16

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

我正在使用Angularjs和.Net的web api开发SPA应用程序。这一切似乎都有效,能够刷新我的页面我已经将规则添加到我的web.config文件中,如下所示,当我刷新具有parmeter的详细信息页面时,它们都可以工作,类似于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>

1 个答案:

答案 0 :(得分:0)

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

更改此类似内容:url="^traveldetail/(.+)",它应该有效。

相关问题