data-binding - Asp.net 核心剃须刀页面 [BindProperty] 不适用于集合
问题描述
我试图[BindProperty]
在 asp.net 核心剃须刀页面中使用注释来绑定Ilist<T>
我的一个模型类的集合,这样我就可以一次编辑其中的一些,但它根本不起作用,每次在 OnPostAsync 函数中集合都是空的,并且我对数据所做的更改和默认值都不会回传到服务器,但是当它的单个对象 [BindProperty] 工作正常并且值回传并且可以更改时,我也尝试包装一个集合(即list<T>
(需要一些ajax调用)??
解决方案
对于 and 之间的绑定,IList
您需要使用to 绑定属性。 RazorPage
PageModel
Product[i].Name
这是完整的步骤。
模型
public class Product { public int Id { get; set; } public string Name { get; set; } }
页面模型
public class IndexModel : PageModel { private readonly CoreRazor.Data.ApplicationDbContext _context; public IndexModel(CoreRazor.Data.ApplicationDbContext context) { _context = context; } [BindProperty] public IList<Data.Product> Product { get; set; } public async Task OnGetAsync() { Product = await _context.Product.ToListAsync(); } public async Task OnPostAsync() { var product = Product; } }
看法
<form method="post"> <table class="table"> <thead> <tr> <th> @Html.DisplayNameFor(model => model.Product[0].Name) </th> <th></th> </tr> </thead> <tbody> @for (int i = 0; i < Model.Product.Count(); i++) { <tr> <td> <input hidden asp-for="Product[i].Id" class="form-control"/> <input asp-for="Product[i].Name" class="form-control" /> </td> <td> <a asp-page="./Edit" asp-route-id="@Model.Product[i].Id">Edit</a> | <a asp-page="./Details" asp-route-id="@Model.Product[i].Id">Details</a> | <a asp-page="./Delete" asp-route-id="@Model.Product[i].Id">Delete</a> </td> </tr> } </tbody> </table> <div class="form-group"> <input type="submit" value="Save" class="btn btn-default" /> </div> </form>
推荐阅读
- python - 设置与用户相关的模型的某些属性的值
- python-3.x - Jupyter notebook python3内核仅连接某些文件
- laravel-5 - 返回日期列+天列<今天日期的结果
- .net - ASP.NET Core - 将加密密钥存储到 Redis
- apache-spark - Livy Batch API - 无法获取 jar
- json - 无法反序列化 JSON 数组 - ElasticSearch.Net/NEST 7.6.1
- android - Android NavController:onResume/onPause 回调重新排序
- node.js - 是否可以批量读取mongoDB?
- sql - 即使在 where in 子句中的条件为空,如何返回结果集
- html - 通过achor标签从chrome打开firefox?