ASP.NET Core 2.0/Razor Pages - 如何在请求之间将数据保存在 NonFactors MVC6 网格中?
Posted
技术标签:
【中文标题】ASP.NET Core 2.0/Razor Pages - 如何在请求之间将数据保存在 NonFactors MVC6 网格中?【英文标题】:ASP.NET Core 2.0/Razor Pages - How can I persist data in a NonFactors MVC6 grid between requests? 【发布时间】:2018-09-02 04:57:43 【问题描述】:我正在使用NonFactors MVC6.Grid。我几乎只是使用基本网格:
@(html
.Grid(Model.Parts)
.Build(columns =>
columns.Add(model => model.PartNumber).Titled("Part Number");
columns.Add(model => model.Description).Titled("Description");
columns.Add(model => model.ProductCode).Titled("Product Code");
columns.Add(model => model.Warehouse).Titled("Warehouse");
)
.Filterable()
.Sortable()
.Pageable(pager =>
pager.RowsPerPage = 20;
)
)
如您所见,网格绑定到模型的Parts
属性:
[BindProperty]
public List<PartModel> Parts get; set; = new List<PartModel>();
我遇到的问题是,当我对 MVC6.Grid 进行排序或过滤时,它会执行 POST,因为数据不会在请求之间持续存在,因此网格最终会尝试对任何内容进行排序。
Parts
由搜索功能填充。这样做的唯一方法是在网格执行帖子时重新填充部分吗?如果是这样的话,有没有办法与 post 事件联系起来?
理想情况下,如果网格可以在不发布的情况下对本地数据进行排序和过滤,那就太好了。
【问题讨论】:
【参考方案1】:我也使用它,而您基本上正在做我所做的事情(我将它与 Razor Pages 一起使用)。在我的情况下,分页(或排序)执行一次获取,然后我连接到 Razor 页面 OnGet(),我将列表转储出来(我使用 Dapper 进行查询)。
背后的代码
public void OnGet()
using (var conn = SiteUtilities.DbConnection())
this.Articles = conn.Query<Article>("select * from article order by title");
public IEnumerable<Article> Articles get; set;
剃刀页面
<div class="table-responsive">
@(Html
.Grid(Model.Articles)
.Build(columns =>
columns.Add(model => model.title).Titled("title").Encoded(false).RenderedAs(model => $"<a href='/model.href'>model.title</a>");
columns.Add(model => model.href).Titled("href");
columns.Add(model => model.update_time).Titled("Last Updated").RenderedAs(m => SiteUtilities.UtcToEasternTime(m.update_time));
columns.Add(model => model.username).Titled("Last Updated By");
columns.Add(model => model.locked).Titled("Locked").RenderedAs(model => model.locked ? "True" : "False");
columns.Add(model => model.views).Titled("Views").RenderedAs(model => model.views.ToString());
)
.Filterable()
.Sortable()
.Pageable()
.Css("table table-sm table-striped table-hover")
)
</div>
在过去的几天里,我也一直在研究这个管道。他刚刚发布了第 3 版,并且在他的演示网站上有更多示例,如果您仍然感兴趣,可以看看。
【讨论】:
以上是关于ASP.NET Core 2.0/Razor Pages - 如何在请求之间将数据保存在 NonFactors MVC6 网格中?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ASP.NET Core 2.0 Razor 页面中填充下拉列表
如何使用 asp.net core 2.0 Razor 页面执行下载操作
我无法在 asp.net core 2.0 razor pages 中执行下载操作
如何使用 Url.Action 在 asp.net core 2.0 razor 页面中传递多个操作
ASP.NET Core 2.0/Razor Pages - 如何在请求之间将数据保存在 NonFactors MVC6 网格中?