8

我已经在 web.xml 中部署了一个 mvc3 应用程序。如何在 Url.Action() 方法中添加虚拟目录名称?

例如:我的应用程序位于 mydomain.com\app

现在当我做

Url.Action 返回 action="/Home/Create" 但我想要的是 action = "/app/Home/Create"。

应该做什么 ?

4

4 回答 4

8

你不应该这样做。如果您的应用程序正确部署在 IIS 中的虚拟目录(例如App)中,那么Url.Action("Create", "Home")帮助程序将生成/app/home/Create正确的 url。

于 2013-02-21T14:18:02.277 回答
1

映射路线(注意:此路线必须出现在默认路线之前)

        context.MapRoute(
            name: "app",
            url: "app/{controller}/{action}/{id}",
            defaults: new { controller = "Test", action = "Index", id = UrlParameter.Optional }
        );

然后像这样使用 Url.Action(应该给你 /app):

@Url.Action("Index", "Test")

您可以在 Global.asax.cs 文件中找到路线。

于 2013-02-21T13:50:47.137 回答
0

看来您要做的是创建一个区域。MVC 支持使用区域来进一步组织应用程序中的控制器和操作。

请参阅此 MSDN arcticle 了解更多信息: http: //msdn.microsoft.com/en-us/library/ee671793 (v=vs.100).aspx

于 2013-02-21T21:09:40.390 回答
0

最后,我使用 Url.Content("~/Home/Create") 返回整个 URL,无论是托管在主目录还是子目录上。

于 2013-04-13T07:32:00.673 回答