Заполните список <object>в моей модели из представления ASP.NET Core - PullRequest
0 голосов
/ 17 декабря 2018

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

Модельное предложение:

Автомобиль

Дата

бла бла

Список OfferRaws

OfferRaw:

PartCode

PartDescription

Цена


Так что в моем представлении, когдапользователь делает предложение, он должен заполнить все данные для предложения, но как я могу взять заполненную информацию от пользователя, чтобы заполнить данные для OfferRaws, и они могут быть добавлены в список модели

 public OfferCreateViewModel()
    {
        this.Raws = new List<OfferRawCreateViewModel>();
    }

    public string CarMake { get; set; }

    public string CarModel { get; set; }

    public string CarRegistrationNumber { get; set; }

    public string CarVinNumber { get; set; }

    public string CarOwner { get; set; }

    public ICollection<OfferRawCreateViewModel> Raws { get; set; }

1 Ответ

0 голосов
/ 18 декабря 2018

Насколько я понимаю, вы хотели бы добавить несколько Raws при создании предложения, а затем передать все данные вашему контроллеру. Это можно сделать с помощью js.Вы можете обратиться к моей простой демонстрации ниже.

1. Мои модели

public class OfferRawCreateViewModel
{
    public string PartCode { get; set; }
    public string PartDescription { get; set; }
}

public class OfferCreateViewModel
{
    public OfferCreateViewModel()
    {
        this.Raws = new List<OfferRawCreateViewModel>();
    }

    public string CarModel { get; set; }

    public string CarOwner { get; set; }

    public ICollection<OfferRawCreateViewModel> Raws { get; set; }
}

2.Вид

@model WebApplication1.Models.OfferCreateViewModel


<form asp-action="Create" method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
    <label asp-for="CarModel" class="control-label"></label>
    <input asp-for="CarModel" class="form-control" />
    <span asp-validation-for="CarModel" class="text-danger"></span>
</div>
<div class="form-group">
    <label asp-for="CarOwner" class="control-label"></label>
    <input asp-for="CarOwner" class="form-control" />
    <span asp-validation-for="CarOwner" class="text-danger"></span>
</div>

<div class="form-group" id="item-list">
    <a href="#" id="add">Add</a>
    <br />
    <input type="text" asp-for="Raws" class="items" name="Raws[0].PartCode" />
    <input type="text" asp-for="Raws" class="items" name="Raws[0].PartDescription" />
</div>
<input type="submit" value="Create" class="btn btn-default" />
</form>
@section Scripts {
<script>
$(function () {

   $("#add").click(function (e) {
       e.preventDefault();
       var i = ($(".items").length) / 2;
       var n = '<br /><input type="text" class="items" name="Raws[' + i + '].PartCode" />' +
           '<input type="text" class="items" name="Raws[' + i + '].PartDescription" />'

       $("#item-list").append(n);
   });

});
</script>
}

3. Контроллер

 [HttpPost]
 public async Task<IActionResult> Create(OfferCreateViewModel model)
...