Страницы бритвы перемещаются, используя основанные на соглашении обработчики.
Текущий PageModel имеет два обработчика Get Tasks.Task OnGetAsync()
и Void OnGet()
, как четко указано в исключении.
Фреймворк не может определить, какой использовать.
Удалите void OnGet
, поскольку он, кажется, не используется.
Также было бы желательно пересмотреть наименование OnPostDeleteAsync
, так как это также может вызвать проблемы с маршрутизацией.
Вы можете добавить методы-обработчики для любого HTTP-глагола. Самый распространенный
обработчики:
OnGet
для инициализации состояния, необходимого для страницы. OnGet образец.
OnPost
для обработки отправленных форм.
Суффикс именования Async
является необязательным, но часто используется в соответствии с соглашением.
для асинхронных функций.
public class IndexModel : PageModel {
private readonly AppDbContext _db;
public IndexModel(AppDbContext db) {
_db = db;
}
public IList<Customer> Customers { get; private set; }
public async Task<IActionResult> OnGetAsync() {
Customers = await _db.Customers.AsNoTracking().ToListAsync();
return Page();
}
public async Task<IActionResult> OnPostAsync(int id) {
var contact = await _db.Customers.FindAsync(id);
if (contact != null) {
_db.Customers.Remove(contact);
await _db.SaveChangesAsync();
}
return RedirectToPage("/Index");
}
}
Ссылка Введение в бритвенные страницы в ASP.NET Core