/pages/defaultcontroller
/pages/datacontroller
/pages/infocontroller
所有控制器都有Index
个操作,并且views文件夹中有index.cshtml
个视图。系统可以找到默认控制器,但无法找到其他控制器。
E.g。 http://servername/pages/default
工作正常但http://servername/pages/data
无法正常工作且http://servername/pages/info
无法正常工作
' /'中的服务器错误应用
无法找到资源。
描述:HTTP 404.您正在查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用。请查看以下网址,确保拼写正确。
我有这条路线,已配置
context.MapRoute(
"pages_default",
"pages/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
唯一奇怪的是,这是作为应用程序迁移开发到mvc的一部分添加到现有Web表单项目的mvc部分。
我对mvc很新,到目前为止享受它:)
有什么想法吗?
更新
我尝试添加额外的路由,仍然是同样的问题
context.MapRoute(
"pages_data",
"pages/data/{action}/{id}",
new { controller = "data", action = "Index", id = UrlParameter.Optional }
);
context.MapRoute(
"pages_info",
"pages/info/{action}/{id}",
new { controller = "info", action = "Index", id = UrlParameter.Optional }
);
context.MapRoute(
"pages_default",
"pages/{controller}/{action}/{id}",
new { controller = "default", action = "Index", id = UrlParameter.Optional }
);
UPDATE(2)
路由调试器的输出(问题的顶部)
答案 0 :(得分:0)
你的路线应该是:
controller
您没有在默认值中定义AssertComponent
参数。
答案 1 :(得分:0)
我发现了问题。我重命名了该文件夹以避免可能的系统冲突。 当我添加新控制器时,它们的命名空间反映了新的文件夹名称,其中现有项目具有基于原始文件夹名称的旧命名空间。
重命名现有文件命名空间以反映新文件夹后,一切正常。它给我带来了一些额外的工作,但我现在回到正轨
感谢大家的输入