从ASP.NET迁移到ASP.NET MVC(2)时需要了解的关键概念是什么?

4

我目前正在使用ASP.NET,准备开始学习ASP.NET MVC (2)。
在我打开第一本厚书并开始第一个冗长的教程之前,需要牢记哪些最重要的(新)概念?有哪些主要的新特性需要注意?

非常感谢。

1个回答

4
没有视图状态。没有服务器端控件。考虑RESTful /无状态;这是一个请求/响应循环,而不是正在处理的事件。
在开始MVC之前,值得考虑一下进入Ruby / Rails,彻底了解.NET堆栈之外的概念。我知道我能够相当快地学会它,因为我已经涉足过足够的Ruby / Rails,以熟悉该范例。
编辑:我还想补充一点,即将视图模型与业务模型(实体)分离是个好主意。您应该绝对使用强类型视图并传递模型,而不是将“未经类型转换”的ViewData传递到视图中,并直接从请求或值提供程序中提取“未经类型转换”的数据。使用模型并使模型绑定框架为您工作将使测试和保持视图更清洁变得更加容易。在视图中使用强类型数据至少会给您一些编译时检查。

哇哦... (-: 不过再多一点信息可能会更有用哦 (-: - Oren A
@Oren - 你要求关键概念,而不是详细教程。我假设你知道它是MVC(Model-View-Controller),所以没有涉及该模式(维基百科上有一篇很好的文章)。我只列出了我从思考角度看到的主要“陷阱”。你必须理解这样一个事实,即你不像在WebForms中那样获得“事件”,也没有一个神奇的容器来存储你的状态。缺少服务器端控件是由于固有的关注点分离使MVC成为一种良好的开发模式(并且更易于测试)。 - tvanfosson
@Oren - 我已经添加了一些建议,关于我推荐传递数据到视图和从视图接收数据的方法。希望有所帮助。 - tvanfosson
@Oren - ASP.NET MVC有两种将数据传递到视图的方式(服务器端,不涉及AJAX)- ViewDataDictionary和ViewDataDictionary上的Model属性。您可以使您的视图采用强类型模型(特定类的模型)或通用(Object)模型。强类型是最好的选择。它允许您直接引用模型的属性,而无需先进行转换。ValueProvider是框架从请求中获取数据的方式。您可以直接与其交互,但将模型作为操作参数更好... - tvanfosson
你好(-: 我在这里问了一个关于你的回答的问题:https://dev59.com/eFDTa4cB1Zd3GeqPI2vH。如果你愿意解释一下你的意思,那就太好了。谢谢。 - Oren A
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接