首页 > 解决方案 > 在浏览器 URL 中输入路由值和使用 RedirectToAction 时控制器操作方法未命中?

问题描述

我有一个 MVC5 应用程序,发布在远程服务器上,它有 HomeController 和 About ActionResult 方法,我的 RouteConfig.cs 配置如下:

            routes.MapRoute("Default", 
            "{controller}/{action}", 
            new { controller = "Home", action = "Login"});

但是,当我导航到作为 192.xxx.1.xx/MyApp 的发布 URL 时,登录表单按预期打开,但是在输入用户名和密码并提交表单后,提交重定向到 HomeController 中的 Post Method Login ,如下所示代码:

        [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Login(SSERPService.UserName userName)
    {
        return RedirectToAction("About");
    }

URL 更改为 192.xxx.1.xx/MyApp/Home/About,但页面显示“Nothing found”(控制器方法“About”似乎没有被命中),当输入 URL 到 About从浏览器 URL 选项卡中手动将页面设置为“192.xxx.1.xx/MyApp/Home/About”,其中页面显示“未找到”,但是,当将 RouteConfig 更改为“默认”时,如下代码:

            routes.MapRoute("Default", 
            "{controller}/{action}", 
            new { controller = "Home", action = "About"});

然后导航到 192.xxx.1.xx/MyApp,然后显示“关于”页面,浏览器中的 URL 保持为 192.xxx.1.xx/MyApp,

如何让浏览器 URL 选项卡中手动输入的 URL 和 RedirectToAction 显示预期的页面“关于”?

注意:本地机器上发布的版本不会导致这个问题,只有远程服务器上的托管版本

请指教,

提前致谢,

标签: asp.net-mvcurliisredirecttoactionrouteconfig

解决方案


您是否尝试过指定更多重定向,例如:

return RedirectToAction("About", "Home");

我还不能发表评论,所以我必须发布作为答案


推荐阅读