IIS 7中嵌套的asp.net mvc 3应用程序,具有损坏的相对链接

时间:2013-09-26 00:42:59

标签: asp.net-mvc asp.net-mvc-3 iis-7

我有两个asp.net mvc 3应用程序。其中一个应用程序的URL应该是这样的:www.my-app.com。第二个应用程序的URL应为:www.my-app.com/my-second-app。

我的方法是将第二个应用程序嵌套在IIS 7中的第一个应用程序中。一切都适用于第一个应用程序。但相对链接在第二个不起作用。这是一个例子:

链接<a href="/sample-controller/sample-action/id">sample text</a>将用户转为www.my-app.com/sample-controller/sample-action/id而不是www.my-app.com/my-second-app/sample-controller/sample-action/id

我尝试在href属性的开头添加代字号(〜)。但是这会返回相对于视图所在文件夹的路径。

我也尝试过使用虚拟文件夹。

我想知道这是否是解决此任务的正确方法?如果是这样,有没有办法解决相关链接的问题?

1 个答案:

答案 0 :(得分:0)

由于子域不适合您,请执行以下操作:

  • 在您的网站中创建一个虚拟目录,并将其指向您的嵌套应用程序。

  • 当您在嵌套应用程序中需要URL时,您需要动态生成它,以便运行时为您正确解析它。

如果要创建操作的URL,请使用ActionLink:@Html.ActionLink("Link Text", "sample-controller", "sample-action")

或者,您可以使用网址对象:<a href="@Url.Action("sample-controller", "sample-action")">My Link</a>

最后,如果您想指向不是控制器操作的资源,请使用代字号来正确解析您的应用程序路径:Url.Content("~/directory/page.html")