我使用以下模板创建了一个示例MVC application
。
ASP.NET MVC2空Web应用程序
然后添加名为Controller
的{{1}}并右键点击First
以添加ActionResult
。
我在浏览器中输入了View
。
查询
当我们输入http://localhost:49565/First
时,控制器内部如何知道将显示特定页面?
此外,如果我为http://localhost:49565/First
添加多个视图。系统将如何决定哪一个将显示在优先级上?
答案 0 :(得分:1)
MVC框架调用控制器,该框架使用Global.asax.cs中定义的路由来确定要调用的控制器和操作。有一个默认路由如下所示:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
当应用程序收到请求时,将尝试将URL解析为路由的格式。如果请求发送到http://localhost:49565/
,它将使用默认值,这些值将转到名为Index
的控制器中的HomeController
操作。当您创建新控制器FirstController
并致电http://localhost:49565/First
后,它会使用FirstController
代替HomeController
,因为它已被提供(但仍然是Index
1}}动作)。
此外,在调用操作并且没有显式定义视图时,它将查找与调用的操作相同的视图。在你的情况下,它将是~/Views/First/Index.aspx
。
修改强>
如果要使用其他视图,可以在return语句中指定它
return View("OtherView");
它将使用~/Views/First/OtherView.aspx
代替。
答案 1 :(得分:0)
查看this博客文章,了解如何完成