在asp.net MVC 2中组织代码时遇到问题

时间:2011-01-29 08:32:43

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

我是MVC的新手,我昨天在asp.net MVC 2上从图书馆借了一本书。

我对模型,视图和控制器中应包含哪种代码感到有点困惑。我正在从书中学习用户输入验证,如果我理解正确,似乎他们在“模型”中声明变量,在“控制器”中验证用户输入并在“视图”中显示网页。

型号: - 解码变量

e.g: 
class Contact:
public string Name { get; set; }
public string EmailAddress { get; set; }

查看: - 获取HTML,HTML帮助程序代码,显示内容并使用“模型”中的变量

e.g: 
<%: Html.TextBoxFor(model => model.Name) %>
<%: Html.ValidationMessageFor(model => model.Name) %>

控制器: - 从模型+“播放”/“操纵”变量调用“视图”以在结尾显示网页(返回视图())。 (验证此示例的用户输入)

e.g:
if (String.IsNullOrEmpty(contact.Name))
   ModelState.AddModelError("Name", "Please enter your name.");

我不确定,但在我看来,“控制器”对我来说是“重编码”部分。另一方面,“View”是一个很好的旧HTML,显示网站的标记和“Model”是一个存储数据的地方(例如声明变量。)

请告诉我是否正确的方向。 谢谢:))

2 个答案:

答案 0 :(得分:3)

  

我不确定但在我看来“控制器”对我来说是“重编码”部分

你应该避免使用脂肪控制器。实际上,控制器可能依赖于包含应用程序业务逻辑的服务层。此服务层本身可以依赖于在模型上执行数据访问(简单CRUD操作)的存储库。因此,控制器只需调用服务层上的业务操作调用来获取/更新模型,然后将视图模型传递给视图以显示它。

答案 1 :(得分:0)

我也是MVC的新手,我开始时做的第一件事就是看看Scott Hanselman和Phill Haack给出的大部分演讲。所以你可以尝试这个:[http://channel9.msdn.com/blogs/matthijs/aspnet-mvc-2-basics-introduction-by-scott-hanselman] [1]

[1]:http://channel9.msdn.com/blogs/matthijs/aspnet-mvc-2-basics-introduction-by-scott-hanselman开始使用。从我得到的,达林是对的。尽量避免使用胖控制器并使用模型库。此外,我注意到,对于简单验证(必需,最大字符串长度等),最好在模型上使用DataAnnotion ...所以你的Contact模型可能如下所示:

class Contact:
[Required]
public string Name { get; set; }
public string EmailAddress { get; set; }

这将使编辑/创建视图需要Name属性。