Редактируемые поля CSHTML для нескольких моделей в одной модели базы данных - PullRequest
0 голосов
/ 29 сентября 2019

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

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

Вот моя модель:

using CustomerPortal.Identity.Models;
using Microsoft.AspNetCore.Mvc.Rendering;
using System;
using System.Collections.Generic;

namespace CustomerPortal.Models
{
    public class EventViewModel
    {
        public string CustomerPONumber { get; set; }
        public string SupplierReferenceNumber { get; set; }
        public string CarrierProNumber { get; set; }
        public IEnumerable<CarrierEventItem> CarrierEventItems { get; set; }
    }
}

IEnumerableссылается на таблицу CarrierEventItems.

На странице CSHTML я могу отобразить поля событий как редактируемые:

@model EventViewModel

<div class="list-item">
    <h3>Cust PO Number</h3>
        @Html.TextBoxFor(m => m.CustomerPONumber)
</div>

 @foreach (var carrierEventItem in @Model.CarrierEventItems)
     {

          <div class="list-item">
              <h3>Customer Item</h3>
              <ul>
                  <li>
                     Customer Item Number: @carrierEventItem.CustomerItemNumber
                  </li>
              </ul>
           </div>
     }

Мне не удалось получить поля CarrierEventItem для редактирования,и я только что смог их отобразить.

Буду признателен за любую помощь в HTML, что я должен сделать!

1 Ответ

0 голосов
/ 30 сентября 2019

Мне удалось решить эту проблему довольно легко, вместо того, чтобы вводить каждое поле в отдельный HTML-элемент Div, Razor автоматически отображает поля как редактируемые:

    <div class="col-12">
        @foreach (var carrierEventItem in @Model.CarrierEventItems)
            {

                <div class="list-item">
                    <h3>Customer Item</h3>

                    @Html.EditorFor(m => carrierEventItem)

                </div>
            }
     </div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...