我有一个列表视图,它有一个强类型的ViewModel,它包含我正在使用的实体列表以及一些其他会话类型的东西aruound。将ASP.Net MVC中的ViewModel从View传递到不同的视图使用Get
单击列表中的项目(Html.ActionLink)转到Details视图,我可以轻松地传递实体标识。但我也想从View中传递ViewModel的其余部分。
我可以使用各种QueryString参数构建ActionLink,然后自定义ModelBinder可以选择它们并为我再次提供ViewModel对象。但是,我不喜欢这样。
我可以得到自定义的ViewModel,当它被张贴回相同的页面等补水时,但我怎么能得到ViewModel到一个控制器操作使用GET到另一个视图,而不使用ModelBinder,并通过简单地放置ViewModel对象作为目标Action方法中的一个参数?
是的,我已经试过soemthing这样的,即通过强将viewmodel位输入到同一控制器上的GET ActionLink,但使用与参数类型和名称中的actionlink参数匹配的不同操作。但是,这总是在Action中返回一个null参数,这就是我使用QueryString方法的原因。 我以为它会被默认的modelbinder绑定。 注意:我假设在MVC 1.0中配置了默认的modelbinder,因为我看不到如教程 – Redeemed1 2009-09-17 23:07:04
中所示的ComplexModelBinder,但实际上只是找到了defaultModelBinder,因此请忽略最后评论的结尾。试着用默认配置 – Redeemed1 2009-09-17 23:10:51
是的,我可以看到,在进入目标Action时,我有一个实例化的参数ok,但是这些值没有反映到它中。 – Redeemed1 2009-09-17 23:18:07