我有两个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
属性的开头添加代字号(〜)。但是这会返回相对于视图所在文件夹的路径。
我也尝试过使用虚拟文件夹。
我想知道这是否是解决此任务的正确方法?如果是这样,有没有办法解决相关链接的问题?
答案 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")