我很抱歉这样一个基本问题,但我的眼球并没有看到我所缺少的东西。
我的路线提供者:
routes.MapRoute("SSOLogin", "SSOlogin/{userId}/{userPwd}/",
new { controller = "Users", action = "SSOLogin" },
new { userId = @"\d+", userPwd = @"\d+" },
new[] { "MyController" });
我原本希望这个网址能够点击我的控制器,而是说找不到页面。
http://localhost:15536/SSOlogin/1/2
自从与MVC合作以来已经过了几个月......显然我的大脑冲刷了所有MVC知识。
由于
答案 0 :(得分:1)
如果您没有任何拼写错误(例如在控制器名称或命名空间中),我能想到的唯一问题是路由的顺序。如果你有一个像
这样的defaut路线 routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Default", action = "Index", id = UrlParameter.Optional }
);
您必须将规则置于之前,以确保正确分派请求。否则,将应用默认规则,导致请求失败。
答案 1 :(得分:1)
对不起,直到今天早上才回到这里。所以......我觉得自己真的很愚蠢,但是因为我在开发当天吸了几个小时,所以我想发帖以防万一。所以排序没有错,而是使用了与url相关的实际网址。
来自OP的你会看到我定义为url:
SSOlogin/{userId}/{userPwd}/
注意 {userPwd}之后的斜杠。
现在看看我期待工作的网址:
http://localhost:15536/SSOlogin/1/2
没有尾随斜线因此不会被发现。的 DUH !! 强>
因此从url定义中删除了尾部斜杠,现在它按预期工作。
谢谢大家......这很有帮助,因为您的输入让我专注于路线定义。