我正在阅读本书中的练习(只是开始学习MVC)。我对 RouteConfig.cs 文件进行了以下更改:
routes.MapRoute("Contact", "Contact/{*pathinfo}", new {
controller = "Home", action = "Contact" });
routes.MapRoute("About", "About/{*pathinfo}", new { controller =
"About", action = "About" });
联系页面工作正常,但是“关于”只是在尝试通过http://localhost:49899/About
访问时抛出错误。
错误:“ /”应用程序中的服务器错误。无法找到该资源。 说明:HTTP404。您要查找的资源(或其资源之一) 依赖项)可能已被删除,名称更改或 暂时不可用。请查看以下网址并进行 确保拼写正确。要求的网址:/关于
我看不到代码的这两行之间的任何区别,有人可以指出我所缺少的内容吗?这是一个全新的项目,具有所有默认设置和脚手架。
答案 0 :(得分:0)
创建默认项目时,各种向导会在后台为您发生。默认项目很可能带有自动生成的HomeController,它是一个自动生成的Home文件夹,其中包含Home Controller将调用的视图以及一些与那些View相对应的Action。
您可能没有名为About的Controller。您为About定义的路由是说,要进入About页面,您将通过About控制器并调用About Action。您最有可能需要点击Home Controller,然后点击About Action。
P.S。 MVC使用命名约定来推断事物的位置。您可能会在名为Home的视图文件夹中找到About视图。您在这里看到图案吗? Routing docs