用于集合属性的MVC ViewModel绑定

时间:2011-06-10 05:00:44

标签: asp.net-mvc binding

将模型传递给视图时,视图可以访问该模型中的所有数据。但仅限第一次。通过单击提交按钮提交视图页面时,您不会在控制器中获取任何数据。为此,您需要通过提供控件来填充它或使用Html.HiddenFor(..)

显式绑定每个模型项。

但是如果我的模型有一个集合成员,而集合成员又拥有集合成员......直到3级或4级,那么我是否“必须”绑定这些集合的每个成员以获取所有数据的操作方法提交后?如果我没有在视图上显示所有这些集合项,那么为什么我应该通过编写巨大的代码来绑定它?但是我在动作方法中也需要它们。除了在视图上显式绑定它之外,还有其他更简单的方法来实现吗?

以下是我的结构。

SalesModel
.... IList HomeProducts
.... int SalesID

产品
.... int ProductID
.... IList SecurityProducts

SecurityProduct
.... SecurityProductID
....说明
....价格
.... IList ProductFeatures

~SalesModel是aspx(View) 〜从这个角度来看,我已经调用了部分视图来显示Home产品(模型=产品) 〜从这个局部视图我调用了另一个局部视图(模型= SecurityProduct) 〜当我第一次打开视图时,我会在每个级别获取数据。但是当我使用提交按钮提交视图时,在绑定FOR循环中的所有内容之后,我在SecurityProduct集合中没有得到任何东西。

提前致谢。

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

已解决:通过在两者上都有隐藏字段,根级别aspx和子级别ascx。不知道这是如何解决它的,但它解决了这个问题。

相关问题