Как редактировать таблицу используя JewelryModelView

411
28 ноября 2016, 18:43

Я изучаю mvc.Возникли вопросы связанные с редактированием полей.

У меня есть следующая модель представления JewelryModelView.

    public List<Metal> MetalsList { get; set; }
    public List<Gender> GenderList { get; set; }
    public List<InsertStone> StoneList { get; set; }
    public List<JewelryType> TypeList { get; set; }
    public List<Production> ManafactureList { get; set; }
    public IEnumerable<Jewelry> JewelryList { get; set; }
    public int? Id { get; set; }
    [Required]
    [Display(Name="Наименование")]
    public string Name { get; set; }
    [Required]
    [Display(Name = "Цена")]
    public int Price { get; set; }
    [Required]
    [Display(Name = "Вес")]
    public int Weight { get; set; }
    public string LargePath { get; set; }
    public string SmallPath { get; set; }
    public int SelectMetalId { get; set; }
    public int SelectGenderId { get; set; }
    public int SelectStoneId { get; set; }
    public int SelectTypeId { get; set; }
    public int SelectManafacId { get; set; }

В представлении редактирования у меня есть несколько DropDownListFor.

Метод EditJewelry(HttpGet версия)

public ActionResult EditJewelry(int id)
    {
        Jewelry model = jewelRep.GetObjectById(id);
        ViewBag.GenderId = new SelectList(context.Gender, "Id", "GenderName", model.GenderId);
        ViewBag.InsertStoneId = new SelectList(context.InsertStone, "Id", "StoneName", model.InsertStoneId);
        ViewBag.JewelryTypeId = new SelectList(context.JewelryType, "Id", "Name", model.JewelryTypeId);
        ViewBag.ProductionId = new SelectList(context.Production, "Id", "NameCountry", model.ProductionId);
        ViewBag.MetalId = new SelectList(context.Metal, "Id", "MetalName", model.MetalId);
        return PartialView("EditJewelry", model);
    }

Используя Entity модель - Jewelry данные обновляются хорошо, но поля LargePath/SmallPath принимают значения null. Как мне можно использовать модель представления JewelryModelView для обновления данных в бд. Не получается передать текущий SelectPropertyId в DropDownListFor.

Пытался передать вот так, он поля передает нормально, но значения в DropDownList имеют становятся начальными.

        var model = new JewelryModelView
    {
        MetalsList = context.Metal.ToList(),
        GenderList = genderRep.GetObjectList().ToList(),
        StoneList = stoneRep.GetObjectList().ToList(),
        TypeList = typeProduct.GetObjectList().ToList(),
        ManafactureList = manafRep.GetObjectList().ToList(),
    };
    return View("JewelryView");

Как вытянуть используя модель представления нужные данные?и можно ли указать для редактирования только нужные поля?

READ ALSO
Entity Framework + SQLite

Entity Framework + SQLite

Базы не существует, делаю через Code FirstНужно, чтобы бд и все таблицы создавались автоматически по классам моделей

2274
Javascript не видит PageMethods

Javascript не видит PageMethods

Написал код для тестирования работы PageMethods в Javascript и C#,но в скрипте не видит PageMethodsЭто скрипт`

551