我在网上部署了一个mvc3应用程序。如何在Url.Action()方法中添加虚拟目录名?
例如:我的应用程序位于mydomain.com \ app
现在我做的时候
Url.Action返回action =“/ Home / Create”,但我想要的是action =“/ app / Home / Create”。
应该做什么?
答案 0 :(得分:8)
你不应该这样做。如果您的应用程序已在IIS中的虚拟目录中正确部署(例如App
),那么Url.Action("Create", "Home")
帮助程序将生成/app/home/Create
这是正确的URL。
答案 1 :(得分: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文件中找到路线。
答案 2 :(得分:0)
您要做的就是创建一个区域。 MVC支持使用Area来进一步组织应用程序中的控制器和操作。
请参阅此MSDN arcticle以获取更多信息:http://msdn.microsoft.com/en-us/library/ee671793(v=vs.100).aspx
答案 3 :(得分:0)
最后我使用的是Url.Content(“〜/ Home / Create”),它返回整个URL,无论是托管在主目录还是子目录上。