我在IIS 7以下规则:
<rule name="Category" enabled="true">
<match url="^store/([0-9]+)/(.*)" />
<action type="Rewrite" url="store?cid={R:1}" appendQueryString="false" logRewrittenUrl="true" />
</rule>
这似乎在我的ASP.Net MVC 3应用程序工作正常,但是我有几个@ Url.Content(“〜/”),这是解决到/存储/为根,而不是/项。 一个典型的网址是http://mysite.com/store/99/coats-with-hoods例如。
编辑/ UPDATE:我还在拉我的头发就这一个,所以我决定看看Url.Content的代码库,我发现它检查URL是否已被重新写入(真),如果是它使相关的路径,这反过来不给我绝对的网址:
if (!PathHelpers._urlRewriterHelper.WasRequestRewritten(httpContext))
return contentPath;
string relativePath = PathHelpers.MakeRelative(httpContext.Request.Path, contentPath);
return PathHelpers.MakeAbsolute(httpContext.Request.RawUrl, relativePath);
任何人都知道为什么这会是什么? 我有点困惑,为什么发生这种情况,我怎么能在我的应用占了吗?