Asp.net mvc ViewBag或ViewModel中的动态引用URL?

Asp.net mvc ViewBag或ViewModel中的动态引用URL?,asp.net-mvc,viewmodel,viewbag,strongly-typed-view,Asp.net Mvc,Viewmodel,Viewbag,Strongly Typed View,我正在处理ASP.NETMVC网站中类似向导的部分,该部分允许用户发布数据并以向前或向后的方向重定向到下一页。也就是说,如果用户单击“下一步”,它将保存并转到下一页。如果他们回击,它将保存并转到上一页。我在表单中使用一个隐藏字段来传递引用页面的值。我的问题涉及存储引用页面值的适当位置。我使用的是强类型视图。我应该为这个页面的视图模型类添加一个引用页面字段,还是可以使用ViewData?我问这个问题已经两个多星期了,但没有回答,但与此同时,我对ASP.Net MVC的了解也在不断发展,所以我要回答

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

我问这个问题已经两个多星期了,但没有回答,但与此同时,我对ASP.Net MVC的了解也在不断发展,所以我要回答我自己的问题。首先,我要提到的是,在我问这个问题之前,我一直只使用ViewModel,而不是ViewBag,所以我的本能是使用ViewModel,但在我看来,我需要传递的信息,即引用URL,并不属于模型,因为它不是我的数据的一部分,它只是“助手”的一部分辅助导航的信息。我认为我之所以犹豫是否将引用Url放在ViewModel中,是因为当时我的视图模型是完全包含域模型类的容器类,而且由于视图的问题不应该污染域模型,所以我不想将引用Url放在域模型中

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

这篇文章向我强调了我现在走上了正确的道路,并简要总结了我目前对视图模型角色的看法:“这就是视图模型。一个您专门定义以满足视图要求的类。”