powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF mvc 4 две модели в одну view.
2 сообщений из 2, страница 1 из 1
EF mvc 4 две модели в одну view.
    #38344812
Фотография Deff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще суть задачи, что решил объединить Index и Create.
Объединил две модели
Код: c#
1.
2.
3.
4.
5.
    public class CompoundViewModel
    {
        public IEnumerable<OrderDetail> AllOrderDetail { get; set; }
        public OrderDetail SelectedOrderDetail { get; set; }
    }



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
  public ActionResult Index()
        {
            var ordersdetails = db.OrdersDetails.Include(o => o.Good)
            ViewBag.GoodId = new SelectList(db.Goods, "Id", "Name");
             var model = new CompoundViewModel(){
                AllOrderDetail=ordersdetails.ToList()
            };
            return View(model);

        }


И два варианта обработки пост запроса.
1)
Код: c#
1.
2.
3.
4.
5.
6.
7.
  [HttpPost]
        public ActionResult Index(CompoundViewModel compoundViewModel)
        {
                db.OrdersDetails.Add(compoundViewModel.SelectedOrderDetail);
                db.SaveChanges();
                ...
        }


2)
Код: c#
1.
2.
3.
4.
5.
6.
7.
  [HttpPost]
        public ActionResult Index(OrderController orderController)
        {
                db.OrdersDetails.Add(orderController);
                db.SaveChanges();
                ...
        }




Часть VIEW.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
@model TestSecure.Models.CompoundViewModel

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true) 
  <fieldset>
        <div class="editor-field">
            @Html.DropDownList("GoodId", "<Выберите товар>")
            @Html.ValidationMessageFor(model => model.SelectedOrderDetail.GoodId)
        </div>
         <div class="editor-field">
            @Html.EditorFor(model => model.SelectedOrderDetail.GoodsCount)
            @Html.ValidationMessageFor(model =>model.SelectedOrderDetail.GoodsCount)
        </div>
        <p>
            <input type="submit" value="Send" />
        </p>
    </fieldset>
}
...


POST запросом отправляю GoodsId и GoodsCount.
Но в контролере в версии 1 принимается только GoodsCount, а в версии 2 только GoodsID.
В чем моя ошибка?
...
Рейтинг: 0 / 0
EF mvc 4 две модели в одну view.
    #38345281
Фотография Deff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщем переделал модель
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
    public partial class OrderDetail
    {   
        [Key]
        public int Id { get; set; }
        public int OrderID { get; set; }
        public int? GoodId { get; set; }
        public Good Good { get; set; }
        public int GoodsCount { get; set; }
        
    }
    public partial class OrderDetail
    {
        public List<OrderDetail> orderDetailList { get; set; }

    }

С ней все получилось.

Только не заработало вот это.
Код: c#
1.
2.
3.
   var ordersdetails = db.OrdersDetails.Include(o => o.Good)
                 .Where(p => p.OrderID == id);
return View(new OrderDetail { orderDetailList = ordersdetails.ToList() });


На методе ToList() просил очень поле OrderDetail_Id. Пришлось добавить. Теперь просто пустое в таблице валяется.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF mvc 4 две модели в одну view.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]