2017-05-03 31 views
0

我有一个带有url重写规则的asp.net页面。规则显示如下:使用url重写时ASP.NET页面加载两次

<rule name="DiscoverCategorySEO"> 
     <match url="^Discover/([0-9]+)/"/> 
     <conditions> 
     <add input="{URL}" negate="true" pattern="\.axd$"/> 
     </conditions> 
     <action type="Rewrite" url="News/Discover.aspx?Section={R:1}" redirectType="Permanent" appendQueryString="false"/> 
</rule> 

我在Page_Load方法中放置了一个断点用于调试。然后当我访问'http://[domain]/Discover/1/'时发现。发现页面将加载两次。但是,如果我把'http://[domain]/News/Discover.aspx?Section=1”,破发点仅会被击中。

有谁知道我怎么能保持URL重写规则,只有一次同时加载页面?

+0

看起来像你需要say stopprocessing = true –

+0

Hi胡子的骆驼,我在哪里添加这个? –

+0

它是一个属性在那里...尝试动作元素... intellisense会引导你;) –

回答

0
<rule name="DiscoverCategorySEO" enabled="true" stopProcessing="true"> 
    <match url="^Discover/([0-9]+)/"/> 
      <conditions logicalGrouping="MatchAll"> 
      <add input="{URL}" negate="true" pattern="\.axd$"/> 
      <add input="{PATH_INFO}" pattern="^Discover/([0-9]+)/" /> 
      </conditions> 
      <action type="Rewrite" url="News/Discover.aspx?Section={R:1}" redirectType="Permanent" appendQueryString="false"/> 
</rule> 
+0

嗨,约瑟夫,谢谢你的回复。代码你给了,但它仍然打破了两次。 –

+0

你重置了iis吗? –

+0

嗨我已经调整了答案,这对你好吗? –