Asp.net mvc IIS中的ASP.NET MVC、RedirectToAction()和Redirect()

Asp.net mvc IIS中的ASP.NET MVC、RedirectToAction()和Redirect(),asp.net-mvc,redirect,iis-8,Asp.net Mvc,Redirect,Iis 8,我正在使用Visual Studio 2015社区版和IIS 8使用ASP.NET MVC 4。。我是这项技术的初学者 我创建了登录页面, 在我的登录控制器(操作索引)中,当用户输入正确的用户名和密码时,我将返回重定向到操作(“索引”,“主页”)以重定向页面。。当我在visual studio环境中调试/运行它时,它会工作。。但是当我发布它(比如说名称是MyPublishedWeb)、在IIS中创建应用程序并浏览它时,URL将如下所示:localhost/MyPublishedWeb/Login

我正在使用Visual Studio 2015社区版和IIS 8使用ASP.NET MVC 4。。我是这项技术的初学者

我创建了登录页面, 在我的登录控制器(操作索引)中,当用户输入正确的用户名和密码时,我将
返回重定向到操作(“索引”,“主页”)
以重定向页面。。当我在visual studio环境中调试/运行它时,它会工作。。但是当我发布它(比如说名称是MyPublishedWeb)、在IIS中创建应用程序并浏览它时,URL将如下所示:
localhost/MyPublishedWeb/Login/Index

问题是,当我成功登录时,它将我重定向到
localhost/Home/Index
,而不是
localhost/MyPublishedWeb/Home/Index
,并给出错误信息

但是,当我将
redirectoaction()
更改为
Redirect()
时,它可以在visual studio环境和IIS中工作

我错过了什么? 为什么
RedirectToAction()
在IIS应用程序中不起作用?

请尝试以下两个步骤:

  • 在控制器中使用
    [HttpPost]
  • 成功登录后返回重定向操作(“索引”、“主页”)
    控制器。重定向到操作
    方法


    向浏览器返回HTTP 302响应,这会导致浏览器对指定操作发出GET请求

    RedirectToAction根据作为方法参数指定的控制器和操作名称构造url,而在Redirect()的情况下,则指定要重定向用户的url。这可能就是为什么Redirect()在您的情况下起作用,但RedirectToAction()不起作用。谢谢,但如果在IIS应用程序中不起作用,我们什么时候需要使用RedirectToAction()?这让我感到困惑,我们是否应该在所有操作方法中只使用Redirect()而不是RedirecToAction()…您是否使用
    RedirecToAction(“Index”,“Home”)
    返回重定向操作(“索引”,“主页”)
    (第二个是正确的)我使用返回重定向操作(“索引”,“主页”);然后我把它改为返回重定向(“~/Home/Index”);因为RedirectToAction()在我的IIS应用程序中不起作用..是的,我尝试了这两个步骤。。我在登录控制器中使用属性[HttpPost]。成功登录后,我还使用return-RedirectToAction(“索引”、“主页”)。但它仅适用于visual studio环境,不适用于IIS应用程序。。