1

我有两个 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属性的开头添加波浪号 (~)。但这会返回相对于视图所在文件夹的路径。

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

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

4

1 回答 1

0

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

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

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

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

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

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

于 2013-09-26T11:39:03.350 回答