我正在学习ASP.NET MVC,并在asp.net/mvc网站上播放了一个视频,该视频展示了如何在回发后从文本框中检索值。在视频中,作者只是从控制器中的Request对象中获取值。
这似乎打破了关注点分离的概念?通过执行此操作,控制器现在依赖于Request对象的存在,如果对控制器运行单元测试,则该对象将不存在。
所以我认为这是一种在回发上检索表单数据的错误方法。什么是正确的方法?一旦进入我的控制器,如何访问回发数据?
似乎应该有一些中间步骤,基本上从回发中提取数据并将其打包成一个好的对象或控制器随后会使用的其他格式?
答案 0 :(得分:2)
应将数据发回您的Model或ViewModel。处理POST的控制器方法将期望将模型作为参数提供。
答案 1 :(得分:1)
使用模型绑定,MVC可以将来自表单数据,查询sting,cookie和许多其他源的数据直接填充到对象模型或其他参数中,这些参数被定义为控制器中操作方法的参数。
这里有太多关于如何工作总结的细节,但它是ASP.NET MVC强大功能的基石。
查看Models and Validation in ASP.NET MVC作为一个很好的起点。你会发现大量围绕MVC模型绑定的其他资源。
如果你喜欢实体书,我真的很喜欢史蒂文桑德森的Pro ASP.NET MVC 2 Framework。