Добавить объект при нажатии на список объектов в ASP.Net - PullRequest
0 голосов
/ 16 февраля 2020

Я пытаюсь ознакомиться с asp. net с. net core 3.1 и пытаюсь воспроизвести приложение WPF, которое я написал.

У меня есть объект с наблюдаемой коллекцией , когда я пытаюсь добавить новый объект в пользовательский интерфейс, он сохраняет только один из объектов в базу данных.

Мой объект:

    [BsonIgnoreExtraElements]
[Serializable]
public class Order : BaseModel
{
    [BsonId]
    [BsonRepresentation(BsonType.ObjectId)]
    public string Id { get; set; }

    [BsonElement("OrderNumber")] 
    public string OrderNumber { get; set; } 
 ...
        [BsonElement("MillingJobList")]
    public ObservableCollection<MillingJob> MillingJobList = new ObservableCollection<MillingJob>();
...}

Мой пользовательский интерфейс:

...
        <div class="form-group">
            <input type="submit" value="Save" name="editbtn" class="btn btn-primary" />
        </div>
        <div class="form-group">
            <input type="submit" value="Add" name="editbtn" class="btn btn-primary" />
        </div>
    </form>
</div>

Контроллер:

        // POST: Order/Edit/5
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Edit(string editbtn,string id, Order order)
    {

        switch (editbtn)
        {
            case "Add":
            {
                MillingJob m = new MillingJob();
                ObjectId Id = new ObjectId();
                Id = ObjectId.GenerateNewId();
                m.Id = id.ToString();

                order.MillingJobListList.Add(m);

                orderRep.Update(id, order);
                return View(order);
            }
        }
        if (id != order.Id.ToString())
        {
            return NotFound();
        }
        if (ModelState.IsValid)
        {
            orderRep.Update(id, order);
            return RedirectToAction(nameof(Index));
        }
        else
        {
            return View(order);
        }
    }

Это очень экспериментальный атм, я нашел несколько почти знакомых нитей, но они не помогли и стали очень сложными. Не вижу причины, почему это не работает. Когда я добавляю точку останова к методу Post перед добавлением объекта, появляется один элемент после order.MillingJobListList.Add (m); это все еще только один элемент в списке. Попробовал с "вставкой" без удачи.

...