繁体   English   中英

ASP.NET 核心 MVC:查看 model IList 到 ICollection

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM