gpt4 book ai didi

asp.net-mvc-3 - MVC 不能使用前导 .. 退出顶层目录

转载 作者:行者123 更新时间:2023-12-02 05:17:56 26 4
gpt4 key购买 nike

使用 ASP.NET MVC 3 构建网站。

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

enter image description here

有如下的 UrlRewite 以便 http://www.example.com将被重写为 http://www.example.com/travel没有更改 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("ListOfCity", new { locationname = "LA"})

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

我的主页/索引 View 中有上述代码。他们抛出异常:

不能使用前导 .. 退出顶级目录。

最佳答案

在我的例子中,在路由配置中创建额外的规则解决了问题。

得到这条规则:

<rule name="site/company/CompanyId-CompanyName/" stopProcessing="true">
<match url="^company/([0-9]+)-([^/^&amp;]+)(/{0,1})$" />
<action type="Rewrite" url="employer/{R:1}" />
</rule>

在操作 url 属性中你应该使用这个额外的规则。

// for urlRewrite
routes.MapRoute("Employer",
"employer/{empid}",
new { controller = "Employer", action = "Index" },
new { empid = @"\d+" }
);

关于asp.net-mvc-3 - MVC 不能使用前导 .. 退出顶层目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20699150/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com