MVC - 哪些是控制器,哪些是视图?

时间:2011-08-08 20:19:58

标签: model-view-controller

我无法使用MVC映射我的网站。

以下页面层次结构的控制器和视图是什么?

指数(主页)

- >玩家

--->目录

- - - - >前锋

- - - - >防御

--->简介

- - - - >新闻

- - - - >统计

- >队

--->目录

------>科

--->团队资料

- - - - >新闻

- - - - >统计

以/ Players / Profile / Stats为例,是'Profile'控制器和'Stats'视图?什么是'球员'? “玩家”的默认(索引)页面是“目录”。 “玩家”也会成为控制者吗?

有没有更好的方法来构建这个网站?

感谢您的回答。现有示例为http://sports.yahoo.com/nhl/players/4351这是个人资料页面。如果单击其他选项卡(例如“拆分统计”),则会显示另一个视图。这就是我想要构建它的方式。在雅虎网址中,似乎“玩家”是一个视图,ID是视图的参数。但是,当您单击其他选项卡时,另一个视图似乎会附加到URL(例如http://sports.yahoo.com/nhl/players/4351/splits)。在这种情况下,“玩家”是视图还是“拆分”视图吗?

3 个答案:

答案 0 :(得分:0)

Controller是一个创建的类,其作用是从get / post获取数据并确定应返回哪个View。这是通过名为Actions

的控制器方法完成的

一个例子......

MyController - >有行动 - >首页 - >家庭行动回归 - >主页视图

答案 1 :(得分:0)

您可以根据自己的喜好构建自己的应用。这看起来很合理。

在您的示例“/ Players / Profile / Stats”中,玩家将成为您MVC应用程序中的区域。配置文件将是您的ProfileController.cs,统计信息将是该控制器中的一个操作(具有相同名称的相应视图:Stats.aspx)。

答案 2 :(得分:0)

控制器和操作并不总是使用您提供的导航地图一对一地映射。但是,在您的情况下,我可能会创建以下控制器:

PlayerController
TeamController

PlayerController可能会执行以下操作:

GetAll()
GetForwards()
GetDefense()
GetProfile(id)
GetNews(id)
GetStats(id)

TeamController可能会:

GetAll()
GetByDivision(id)
GetProfile(id)
GetNews(id)
GetStats(id)

然而,由于很难从你的导航地图中准确地说出意图,我不能肯定地说。