ASP.Net MVC控制器和View交互

时间:2012-05-06 10:10:53

标签: asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-2

我使用以下模板创建了一个示例MVC application

  

ASP.NET MVC2空Web应用程序

然后添加名为Controller的{​​{1}}并右键点击First以添加ActionResult

我在浏览器中输入了View

查询

当我们输入http://localhost:49565/First时,控制器内部如何知道将显示特定页面?

此外,如果我为http://localhost:49565/First添加多个视图。系统将如何决定哪一个将显示在优先级上?

2 个答案:

答案 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博客文章,了解如何完成