ASP .NET MVC RedirectoToAction忽略所在的应用程序

Sil*_*ano 5 asp.net-mvc iis-7

我在我的服务器中部署了一个MVC应用程序,位于虚拟目录中,如:

http://localhost/myapp/
Run Code Online (Sandbox Code Playgroud)

其中"myapp"是虚拟目录

在我的登录视图中,位于

"http://localhost/myapp/user/login", 
Run Code Online (Sandbox Code Playgroud)

我使用重定向到索引RedirectToAction("Index", "Home"),似乎应用程序尝试重定向到

"http://localhost/home/index" 
Run Code Online (Sandbox Code Playgroud)

代替

"http://localhost/myapp/home/index".
Run Code Online (Sandbox Code Playgroud)

当应用程序位于IIS网站的根目录中但在给定情况下不起作用时,该应用程序可以正常工作.

有没有办法配置应用程序root,我错过了?

设置:Microsoft Visual Studio Express 2012 for Web,Windows 7下的Windows 7,应用程序池ASP .NET v4.0

Mar*_*rko 2

我 99% 肯定会这样做:

return RedirectToAction("Index", "Home")
Run Code Online (Sandbox Code Playgroud)

是应用程序根相对的意味着它应该重定向到您所在的应用程序,无论虚拟目录设置或应用程序位于何处。我的意思是想想噩梦,否则每次将应用程序移动到不同的虚拟目录时,您都需要更新 global.asax 或 web.config 文件???荒谬的!我们的设置与您相同,并且我们在“应用程序跳转”方面没有任何问题。

您确定 RedirectToAction 导致了这种情况吗?你是否有类似的情况:

@Url.Content("/Home/Index")
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您会遇到此问题,您可以通过执行以下操作轻松解决此问题:

@Url.Content("~/Home/Index")
Run Code Online (Sandbox Code Playgroud)

~ 符号使其与应用程序根目录相关......