razor - CSHTML editable fields for multiple models in one to many database model
问题描述
I created a form that pushes data to two tables in a database. The header information of the form pushes as a single entry in one table and then as multiple lines on the other table that reference the entry on the first table. One to many relationship.
I need to be able to edit the information in the form. I'm able get the header information to render into editable fields, but I'm not able to for the multiple line level information.
Here is my model:
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; }
}
}
The IEnumerable references the CarrierEventItems
table.
On the CSHTML page I am able to render the event fields as a editable:
@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>
}
I'm haven't been able to get the CarrierEventItem
fields to be editable, and I've just been able to display them.
Any help on the html I have to do would be appreciated!
解决方案
我能够很容易地解决这个问题,而不是在单独的 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>
推荐阅读
- docker - Docker 不尊重容器内部的权限,为什么?
- bash - 管道输入到脚本无法正常工作
- database - 外部表的用例?
- c# - 如何使用鼠标将选定的游戏对象移动到某个位置
- java - 父实体的多次保存为 JPA 中的 ElementCollection 生成多个条目
- javascript - 添加新行时下拉搜索不起作用
- bash - 从网络适配器列表中读取的 OSX Shell 脚本?
- cucumber - TestNG Appium 并行执行不起作用
- python - 从 Tkinter 应用程序上的 Frame 和 mainloop 继承
- javascript - 单击按钮后页面已加载但显示白色空白屏幕(拒绝在框架中显示)-赛普拉斯