Asp.net mvc 3 MVC不能使用前导。。在顶部目录上方退出

Asp.net mvc 3 MVC不能使用前导。。在顶部目录上方退出,asp.net-mvc-3,url-rewriting,url-routing,Asp.net Mvc 3,Url Rewriting,Url Routing,使用ASP.NETMVC3构建网站 按如下方式发布:在网站下创建一个虚拟目录,将MVC应用程序复制到此文件夹并将其转换为应用程序。所以站点结构看起来像 让UrlRewite如下所示,以便在不更改url的情况下将其重写为 <rule name="rewrite rule for home page" enabled="true" stopProcessing="false"> <match url="^$" /> <conditions logicalGroup

使用ASP.NETMVC3构建网站

按如下方式发布:在网站下创建一个虚拟目录,将MVC应用程序复制到此文件夹并将其转换为应用程序。所以站点结构看起来像

让UrlRewite如下所示,以便在不更改url的情况下将其重写为

<rule name="rewrite rule for home page" enabled="true" stopProcessing="false">
 <match url="^$" />
 <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
 <action type="Rewrite" url="/home/index" appendQueryString="false" />
</rule>
<rule name="rewrite rule for virtual path" enabled="true">
 <match url="^[\w-/\.]+$" />
 <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
 <action type="Rewrite" url="/travel/{R:0}" appendQueryString="false" />
</rule>

然后我的问题就出来了

script src=“@Url.Content(“~/Content/Js/Index.Js”)”type=“text/javascript”>

Url.RouteUrl(“绿星社”)

Url.RouteUrl(“城市列表”,新{locationname=“LA”})

script src=“@Url.Content(“/Content/Js/Index.Js”)”type=“text/javascript”>

我的主页/索引视图中有上述代码。他们抛出了例外:


无法使用前导。。退出顶部目录上方。

在我的情况下,在路由配置中创建额外规则解决了问题

得到了这个规则:

<rule name="site/company/CompanyId-CompanyName/" stopProcessing="true">
    <match url="^company/([0-9]+)-([^/^&amp;]+)(/{0,1})$" />
    <action type="Rewrite" url="employer/{R:1}" />
</rule>
// for urlRewrite
routes.MapRoute("Employer", 
    "employer/{empid}", 
    new { controller = "Employer", action = "Index" }, 
    new { empid = @"\d+" }
);