Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 Can';t绑定模型到控制器,MVC3_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc 3 Can';t绑定模型到控制器,MVC3

Asp.net mvc 3 Can';t绑定模型到控制器,MVC3,asp.net-mvc-3,Asp.net Mvc 3,我有2个视图和1个EditorTemplate 第一个视图是Cart.cshtml视图,该视图有一个模型(CartModel) 在此视图中,使用以下命令调用第二个视图: @Html.Partial("OrderSummary", Model.CartSummaryModel) 在OrderSummary.cshtml视图中,我有以下内容 @Html.EditorFor(m => m.OrderItems) 在EditorTemplate(称为OrderItemModel)中 问题在于,

我有2个视图和1个EditorTemplate

第一个视图是Cart.cshtml视图,该视图有一个模型(CartModel) 在此视图中,使用以下命令调用第二个视图:

@Html.Partial("OrderSummary", Model.CartSummaryModel)
在OrderSummary.cshtml视图中,我有以下内容

@Html.EditorFor(m => m.OrderItems)
在EditorTemplate(称为OrderItemModel)中

问题在于,当在最顶端的视图(Cart.cshtml)上导致post时,模型在控制器中没有绑定,“CartSummaryModel”为空。切换到FormCollection时,有两个键:

OrderItems[0].SelectedQuantity
OrderItems[1].SelectedQuantity

如何将表单集合数据绑定到控制器的操作方法?

这是因为部分:

@Html.Partial("OrderSummary", Model.CartSummaryModel)
在这里,您失去了输入字段名称中所需的
CartSummaryModel
前缀。因此,使用编辑器模板而不是使用分部

继续并将此
OrderSummary.cshtml
移动到
EditorTemplates/OrderSummary.cshtml
,然后在视图中替换:

@Html.Partial("OrderSummary", Model.CartSummaryModel)
与:

如果
CartSummaryModel
属性的类型是
OrderSummary
,您甚至不需要指定编辑器模板的名称,因为ASP.NET MVC将按惯例找到它:

@Html.EditorFor(x => x.CartSummaryModel)
现在可以开始了,您将看到发送到服务器的正确密钥:

CartSummaryModel.OrderItems[0].SelectedQuantity
CartSummaryModel.OrderItems[1].SelectedQuantity

尝试用
@Html.EditorFor(m=>m.SelectedQuantity,Model.QuantityList)替换
@Html.EditorFor(m=>m.SelectedQuantity,Model.QuantityList)
@Html.EditorFor(x => x.CartSummaryModel)
CartSummaryModel.OrderItems[0].SelectedQuantity
CartSummaryModel.OrderItems[1].SelectedQuantity