У меня есть класс OrderSummaryViewModel
Как связать список с помощью MVC .net?
public class OrderSummaryViewModel
{
public int Id { get; set; }
public string PurchaseOrderNumber { get; set; }
public string DeliveryCondition { get; set; }
/// <summary>
/// Order items
/// </summary>
public List<OrderItem> Items { get; set; }
}
И второго класс OrderItem
/// <summary>
/// Order items
/// </summary>
public class OrderItem
{
public int Id { get; set; }
public string ItemNumber { get; set; }
public string DeliveredQuantity { get; set; }
public string fullyDelivered { get; set; }
}
И я связать модель OrderSummaryViewModel
в поле ниже .csHTML
зрения, чтобы показать порядок с его соответствующими пунктами.
@model OrderSummaryViewModel
<div class="baseForm">
<label>PO Number:</label></td>
@Html.DisplayFor(model => model.PurchaseOrderNumber)
<label>Delivery Condition:</label>
@Html.DisplayFor(model => model.DeliveryCondition)
@using (Ajax.BeginForm("RegisterGoodsReceipt",FormMethod.Post, new AjaxOptions { OnSuccess = "OnSuccessRegisterGoodsReceipt", OnFailure = "OnFailureRegisterGoodsReceipt" }, null))
{
var items= Model.Items;
<table class="dataGrid">
@for (var i = 0; i < items.Count; i++)
{
var item = items[i];
<tr>
<td>@Html.DisplayFor(modelItem => item.Id)</td>
<td>@Html.DisplayFor(modelItem => item.ItemNumber)</td>
<td>
<input class="fullyDelivered" id="@(item.Id)" name="fullyDelivered" type="checkbox" />
<input type="text" id="[email protected](item.Id)" name="DeliveredQuantity" value="@item.DeliveredQuantity"/>
</td>
</tr>
}
</table>
<button type="submit" class="button">Submit</button>
}
</div>
Я хочу представить список пунктов ниже действия, как показано ниже
public ActionResult RegisterGoodsReceipt(OrderSummaryViewModel order)
{
//to do
}
Но всегда идти с нулем, я пытался также отправить его в списке элементов, и это дает нуль также.
public ActionResult RegisterGoodsReceipt(List<OrderItem> items)
{
//to do
}
поэтому любая помощь по этому вопросу?
'DisplayFor' не' Post' значения. Вы должны поддерживать их в 'скрытых областях или TextBoxFor или EditorFor' с правильной индексацией для списка элементов заказа. – ramiramilu
Правильно создайте свои входы в цикле 'for', используя' @ Html.TextBoxFor (m => m.Items [i] .DeliveredQuantity) 'и т. Д. –
См. Также [Таблица HTML для ADO.NET DataTable] (http: // stackoverflow .com/questions/30094047/html-table-to-ado-net-datatable/30094943 # 30094943) –