![](/img/trans.png)
[英]Updating ICollection from ViewModel in ASP.NET Core MVC
[英]ASP.NET Core MVC : view model IList to ICollection
我目前的看法 model:
public class CustomerVM
{
public string fname;
public virtual IList<DocumentVM>? Documents { get; set; } = null!;
}
public class DocumentVM
{
public string UniqueNo;
...some code ommitted
}
下面是Chtml设计。 一位客户可以填写二维文件。
...some code ommited
<div class="form-group col-md-3">
<label asp-for="customer.FirstName" class="col-form-label"></label>
<input asp-for="customer.FirstName" class="form-control" />
<span asp-validation-for="customer.FirstName" type="text" class="text-danger"></span>
</div>
<div class="form-group col-md-4">
<label asp-for="customer.Documents[0].DocTypeId" class="col-form-label">Document Type</label>
<select asp-for="customer.Documents[0].DocTypeId" asp-items="@Model.customer.DocumentTypeList" class="form-control">
<option>Choose</option>
</select>
</div>
<div class="form-group col-md-3">
<label asp-for="customer.Documents[0].UniqueNo" class="col-form-label"></label>
<input asp-for="customer.Documents[0].UniqueNo" type="text" class="form-control" />
<span asp-validation-for="customer.Documents[0].UniqueNo" class="text-danger"></span>
</div>
<div class="form-group col-md-4">
<label asp-for="customer.Documents[1].DocTypeId" class="col-form-label">Document Type</label>
<select asp-for="customer.Documents[1].DocTypeId" asp-items="@Model.customer.DocumentTypeList" class="form-control">
<option>Choose</option>
</select>
</div>
<div class="form-group col-md-3">
<label asp-for="customer.Documents[1].UniqueNo" class="col-form-label"></label>
<input asp-for="customer.Documents[1].UniqueNo" type="text" class="form-control" />
<span asp-validation-for="customer.Documents[1].UniqueNo" class="text-danger"></span>
</div>
此代码完美运行。 但我需要改变我的看法 model 客户
public virtual IList<DocumentVM>? Documents { get; set; } = null!;
至
public virtual ICollection<DocumentVM>? Documents { get; set; } = null!;
我无法从 Razor 视图直接访问索引。 是否可以在 ASP.NET Core 3.1 中将我的视图设计更改IList
更改为ICollection
object?
提前致谢
您想在表单提交时保存多个文档,因此表单渲染使用 for 循环,它将根据集合填充强类型控件并可以相应地提交。
for (int i = 0; i < Model.Count; i++)
{
@Html.LabelFor(m => m[i].UniqueNo)
@Html.TextBoxFor(m => m[i].UniqueNo)....
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.