采取以下假设情况,我将如何在MVC中实现它?
我的所有网页都位于Master中,其上有一个CurrentUser属性。此对象由某个会话用户标识确定,然后在每个页面加载时从数据库中查询。然后在整个站点中使用该对象,例如在顶部显示“Welcome _____”,并在各种页面代码隐藏中用作数据库查询的一部分等。一个页面上有几个用户控件,每个页面显示不同的信息,查询在第一次加载。当一个控件回发并以某种方式改变它的显示时,页面的其余部分保持不变,而不需要重新填充。
我得到了mvc的基础知识,但是我很想知道如何将它带到下一个(现实世界)级别的内容丰富的视图。如何向视图公开常见对象?控制器是否必须将视图可能需要的每一点数据都粘贴到ViewData中?
任何人都可以推荐一个关于更高级mvc使用的好教程,这将有助于我理解如何摆脱webforms?
答案 0 :(得分:2)
我更喜欢将我的视图所需的所有数据放入ViewData中。我尝试在大多数时间使用强类型模型,并且在将我的应用程序中使用的公共属性添加到公共BaseViewData类方面取得了一些成功。
对于像用户信息这样的常见属性,我让BaseViewData类负责填充或提供这些属性值,以便每个控制器不必担心不一定是特定操作所关注的上下文信息。
我很想知道其他人是如何解决这个问题的。