我创建了一个将数据推送到数据库中两个表的表单。表单的标题信息在一个表中作为单个条目推送,然后在另一个表中作为引用第一个表中条目的行推送。一对多的关系。
我需要能够编辑表格中的信息。我可以将标头信息呈现到可编辑的字段中,但无法获取多行级别的信息。
这是我的模特:
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所做的任何帮助将不胜感激!
答案 0 :(得分:0)
我能够轻松解决此问题,而不是在单独的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>