[英]C# MVC Model Binding for List<T>
我正在嘗試在 C# MVC 中為具有模型綁定的實踐餐廳應用程序創建一個表單。 我在理解我做錯了什么或如何做時有點困難。 我有一個 OrderItems 的形式和一個數量。 我想用數量制作模型,以便我可以在數據庫中制作相應的訂單行。
表格(部分視圖):
@using FormAddOrderItemModel = Restaurant.Models.Order.Form.FormAddOrderItemModel
@model FormAddOrderItemModel;
@using (Html.BeginForm("Form_AddOrderItems", "Order", FormMethod.Post))
{
for (var i = 0; i < Model.OrderItems.Count; i++)
{
var item = Model.OrderItems[i];
<div>
@Html.Label(item.Name)
@Html.HiddenFor(m => m.ContentsList[i].OrderItem, item)
@Html.LabelFor(m => m.ContentsList[i].Quantity)
@Html.TextBoxFor(m => m.ContentsList[i].Quantity)
</div>
}
<input class="btn btn-primary" type="submit" value="Submit">
}
該模型:
using System.Collections.Generic;
namespace Restaurant.Models.Order.Form
{
public class FormAddOrderItemModel
{
public List<OrderItem> OrderItems { get; set; }
public List<FormContents> ContentsList { get; set; }
}
public class FormContents
{
public OrderItem OrderItem { get; set; }
public int Quantity { get; set; }
}
}
控制器動作:
[HttpPost]
public IActionResult Form_AddOrderItems(List<FormContents> response) {
var test = response;
return View("ManageOrder", _orderService.PrepareManageOrderViewModel(12));
}
我假設這會填充一個 FormContents 列表。 控制器操作中的“響應”是一個實例化的 FormContents 列表,計數為 0。
如何將 FormContents 列表從我的部分視圖傳遞到我的控制器?
由於您正在提交表單,因此操作的輸入參數應與表單模型相同
public IActionResult Form_AddOrderItems(FormAddOrderItemModel model)
你的視圖模型可以更簡單
@model Restaurant.Models.Order.Form.FormAddOrderItemModel
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.