Я пишу свое первое приложение MVC3, которое является простым приложением отслеживания заказов. Я хотел бы отредактировать заказ и детали одновременно. Когда я редактирую заказ, ActionResult для Edit возвращает порядок и связанную строку (я также использую EF).Сохранение нескольких объектов из представления MVC
public ActionResult Edit(int id)
{
// Get the order with the order lines
var orderWithLines = from o in db.Orders.Include("OrderLines")
where o.ID == id
select o;
// Not sure if this is the best way to do this.
// Need to find a way to cast to "Order" type
List<Order> orderList = orderWithLines.ToList();
Order order = orderList[0];
// Use ViewData rather than passing in the object in the View() method.
ViewData.Model = order;
return View();
}
Порядка и строки отображаются без какого-либо вопроса, но когда я сохранить страницу я не получаю какие-либо из линий, переданных обратно в контроллер. Только заказ. Вот код представления.
@model OrderTracker.Models.Order
@{
ViewBag.Title = "Edit";
}
<h2>Edit</h2>
@using (Html.BeginForm())
{
<fieldset>
<legend>Order</legend>
@Html.HiddenFor(model => model.ID)
@Html.HiddenFor(model => model.UserId)
<div>
@Html.LabelFor(model => model.OrderDate)
</div>
<div>
@Html.EditorFor(model => model.OrderDate)
</div>
<div>
@Html.LabelFor(model => model.Description)
</div>
<div>
@Html.EditorFor(model => model.Description)
</div>
<table>
<tr>
<th>
Description
</th>
<th>
Quantity
</th>
<th>
Weight
</th>
<th>
Price
</th>
<th></th>
</tr>
@foreach (var line in Model.OrderLines)
{
<tr>
<td>
@Html.EditorFor(modelItem => line.Description)
</td>
<td>
@Html.EditorFor(modelItem => line.Quantity)
</td>
<td>
@Html.EditorFor(modelItem => line.Weight)
</td>
<td>
@Html.EditorFor(modelItem => line.Price)
</td>
</tr>
}
</table>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
Могу ли я получить руководство по наилучшему способу сохранения данных линии, а также данных заказа.
Спасибо.
не работал в ASP MVC 5, любые указатели, пожалуйста, отправляйте пакет Ienumerable –
transformer
@transformer отлично работает в MVC5. Что не для вас? Модель «Заказ» будет иметь список предметов «OrderLine». Обратите особое внимание на пункты 1 и 3 в моем ответе. У вас есть образец кода в реестре github? –