0

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

ASP.NET MVC2 空 Web 应用程序

然后 a 添加了 aController的名称First和 a 右键单击ActionResult​​添加 a View

http://localhost:49565/First在浏览器中输入。

询问

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

此外,如果我为一个Controller. 系统将如何决定优先显示哪一个?

4

2 回答 2

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, 和 call http://localhost:49565/First,它使用FirstController代替 ,HomeController因为它已被提供(但仍用于Index操作)。

此外,当一个动作被调用并且没有明确定义视图时,它将寻找一个与被调用动作同名的视图。在你的情况下,它会是~/Views/First/Index.aspx.

编辑

如果你想使用另一个视图,你可以在 return 语句中指定它

return View("OtherView");

它将~/Views/First/OtherView.aspx改为使用。

于 2012-05-06T10:30:15.077 回答
0

看看这个博客文章让你知道它是如何完成的

于 2012-05-06T10:28:19.610 回答