ViewBag或ViewModel中的动态引用URL?

时间:2013-05-16 15:55:26

标签: asp.net-mvc viewmodel viewbag strongly-typed-view

我正在开发一个类似ASP.Net MVC网站的向导,允许用户发布数据并向前或向后重定向到下一页。也就是说,如果用户单击下一步,则会保存并转到下一页。如果他们回击它保存并转到上一页。我在表单中使用隐藏字段来传递引用页面的值。我的问题涉及存储引用页面值的适当位置。我正在使用强类型视图。我应该在此页面的视图模型类中添加引用页面字段,还是可以接受使用ViewData的情况?

1 个答案:

答案 0 :(得分:0)

自从我问这个问题并且没有答案以来已经超过2周,但与此同时我对ASP.Net MVC的了解已经发展,所以我将回答我自己的问题。首先,我要提到的是,在我提出这个问题之前,我一直只使用ViewModel而不是ViewBag,所以我的直觉是使用ViewModel,但在我看来,我需要传递的信息,引用URL,不是因为它不是我的数据的一部分而属于模型的东西,它只是帮助导航的“辅助”信息。我认为我把参考网址放在ViewModel中的犹豫是因为当时我的View Models是完全包含域模型类的容器类,并且因为视图的关注不应该污染域模型,所以我不想将引用网址放在我的域模型中。

从那时起,我删除了“视图模型作为域模型的容器”方法,而是使用映射到域模型的自定义视图模型,但也可以包含我的域模型中不存在的信息,例如引用URL。当我发现这篇帖子提出类似于我的问题时,我已经得出了这个结论:

ViewModels or ViewBag?

这篇文章强化了我,我现在正走在正确的轨道上,简洁地总结了我目前对视图模型角色的看法:“这就是视图模型。你专门定义的类是为了满足视图的要求“。