簡體   English   中英

無法將模型綁定到Controller,MVC3

[英]Can't bind model to Controller, MVC3

我有2個視圖和1個EditorTemplate

第一個視圖是Cart.cshtml視圖,並且該視圖具有模型(CartModel)。在此視圖內,可以使用以下命令調用第二個視圖:

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

在OrderSummary.cshtml視圖內部,我有這個

@Html.EditorFor(m => m.OrderItems)

在EditorTemplate(稱為OrderItemModel)內部,

@Html.DropDownListFor(m => m.SelectedQuantity, Model.QuantityList)

問題是,當在最高視圖(Cart.cshtml)上發布帖子時,模型未在控制器中綁定,因此“ CartSummaryModel”為null。 交換到FormCollection時,有兩個鍵:

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

如何將表單收集數據綁定到Controller的action方法?

這是由於部分原因:

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

在這里,您失去了輸入字段名稱中所需的CartSummaryModel前綴。 因此,不要使用局部變量,而使用編輯器模板。

繼續並將此OrderSummary.cshtml移動到EditorTemplates/OrderSummary.cshtml ,然后在視圖內部替換:

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

與:

@Html.EditorFor(x => x.CartSummaryModel, "OrderSummary")

如果類型CartSummaryModel屬性是OrderSummary你甚至不需要指定編輯模板的名稱為ASP.NET MVC將按照約定找到它:

@Html.EditorFor(x => x.CartSummaryModel)

現在您可以使用了,您將看到發送到服務器的正確密鑰:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM