MVC5启动URL和路由 - 不在本地工作

时间:2014-05-17 18:43:24

标签: asp.net-mvc localhost http-status-code-404 asp.net-mvc-routing

我的网站上有一个项目正常运行。如果我现在部署,一切正常。问题是当我试图在我的本地计算机上以调试模式运行时 - 路由似乎搞砸了。

这是我的项目网络配置:

enter image description here

路线配置:

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
               name: "Default",
               url: "{controller}/{action}/{id}",
               defaults: new { controller = "PvP", action = "Play", id = UrlParameter.Optional }
           );

        }

在我的主控制器上,名为PvPController,是一个名为Play no no parameters。

的方法

当我通过开始调试启动我的项目时,它所到达的URL就是这个(忽略括号):

(HTTP)://本地主机:64397 /

一切都很好,因为路由知道将其重定向到/ PvP / Play。

但是,如果我输入(http):// localhost:64397 / PvP / Play,我会收到404 not found错误。如果我尝试在PvP控制器中调用任何操作,也会发生同样的事情,包括单击页面上任何直接从调试器加载的链接。

有趣的是,我有一个名为PvPAdminController的不同控制器。它有一个名为PvPAdmin的动作,没有参数。如果在此输入类型:

(HTTP)://本地主机:64397 / PvPAdmin / PvPAdmin

行动没有任何问题。

我的启动操作和项目网址是否存在某种问题?为什么路由适用于PvPAdminController但不适用于PvPController?

谢谢!

根据要求提供一些控制器代码。

 [InitializeSimpleMembership]
    public class PvPController : Controller
    {
        //
        // GET: /PvP/

        public ActionResult Play()
        {
        ... a bunch of logic....
       return View(output);
        }
    }

1 个答案:

答案 0 :(得分:0)

事实证明,我的解决方案是更改localhost端口号并让它创建一个新的虚拟目录。我不完全确定这是怎么发生的,但我想当我搞乱启动网址时,它会重新映射一些文件,这就是我收到404错误的原因。

仍然,我很好奇为什么它在使用(http):// localhost:64397 /但不是(http):// localhost:64397 / PvP /时仍可以连接到主播放页面玩。