如何使此 var 在 Razor Pages 中可访问
How to make this var accessible in Razor Pages
我在索引页面后面有以下代码:
public async Task OnGetAsync()
{
var tournamentStats = await _context.TournamentBatchItem
.Where(t => t.Location == "Outdoor" || t.Location == "Indoor")
.GroupBy(t => t.Location)
.Select(t => new { Name = $"{ t.Key } Tournaments", Value = t.Count() })
.ToListAsync();
tournamentStats.Add(new { Name = "Total Tournaments", Value = tournamentStats.Sum(t => t.Value) });
}
也在这段代码后面我有 class:
的定义
public class TournamentStat
{
public string Name { get; set; }
public int Value { get; set; }
}
public IList<TournamentStat> TournamentStats { get; set; }
如何将 tournamentStats
/ TournamentStats
引用到 Razor Pages 中?
引用Introduction to Razor Pages in ASP.NET Core
public class IndexModel : PageModel {
private readonly AppDbContext _context;
public IndexModel(AppDbContext db) {
_context = db;
}
[BindProperty] // Adding this attribute to opt in to model binding.
public IList<TournamentStat> TournamentStats { get; set; }
public async Task<IActionResult> OnGetAsync() {
var tournamentStats = await _context.TournamentBatchItem
.Where(t => t.Location == "Outdoor" || t.Location == "Indoor")
.GroupBy(t => t.Location)
.Select(t => new TournamentStat { Name = $"{ t.Key } Tournaments", Value = t.Count() })
.ToListAsync();
tournamentStats.Add(new TournamentStat {
Name = "Total Tournaments",
Value = tournamentStats.Sum(t => t.Value)
});
TournamentStats = tournamentStats; //setting property here
return Page();
}
//...
}
并在视图
中访问属性
例如
@page
@model MyNamespace.Pages.IndexModel
<!-- ... markup removed for brevity -->
@foreach (var stat in Model.TournamentStats) {
//...access stat properties here
}
我在索引页面后面有以下代码:
public async Task OnGetAsync()
{
var tournamentStats = await _context.TournamentBatchItem
.Where(t => t.Location == "Outdoor" || t.Location == "Indoor")
.GroupBy(t => t.Location)
.Select(t => new { Name = $"{ t.Key } Tournaments", Value = t.Count() })
.ToListAsync();
tournamentStats.Add(new { Name = "Total Tournaments", Value = tournamentStats.Sum(t => t.Value) });
}
也在这段代码后面我有 class:
的定义public class TournamentStat
{
public string Name { get; set; }
public int Value { get; set; }
}
public IList<TournamentStat> TournamentStats { get; set; }
如何将 tournamentStats
/ TournamentStats
引用到 Razor Pages 中?
引用Introduction to Razor Pages in ASP.NET Core
public class IndexModel : PageModel {
private readonly AppDbContext _context;
public IndexModel(AppDbContext db) {
_context = db;
}
[BindProperty] // Adding this attribute to opt in to model binding.
public IList<TournamentStat> TournamentStats { get; set; }
public async Task<IActionResult> OnGetAsync() {
var tournamentStats = await _context.TournamentBatchItem
.Where(t => t.Location == "Outdoor" || t.Location == "Indoor")
.GroupBy(t => t.Location)
.Select(t => new TournamentStat { Name = $"{ t.Key } Tournaments", Value = t.Count() })
.ToListAsync();
tournamentStats.Add(new TournamentStat {
Name = "Total Tournaments",
Value = tournamentStats.Sum(t => t.Value)
});
TournamentStats = tournamentStats; //setting property here
return Page();
}
//...
}
并在视图
中访问属性例如
@page
@model MyNamespace.Pages.IndexModel
<!-- ... markup removed for brevity -->
@foreach (var stat in Model.TournamentStats) {
//...access stat properties here
}