我的网站上有一个项目正常运行。如果我现在部署,一切正常。问题是当我试图在我的本地计算机上以调试模式运行时 - 路由似乎搞砸了。
这是我的项目网络配置:
路线配置:
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);
}
}
答案 0 :(得分:0)
事实证明,我的解决方案是更改localhost端口号并让它创建一个新的虚拟目录。我不完全确定这是怎么发生的,但我想当我搞乱启动网址时,它会重新映射一些文件,这就是我收到404错误的原因。
仍然,我很好奇为什么它在使用(http):// localhost:64397 /但不是(http):// localhost:64397 / PvP /时仍可以连接到主播放页面玩。