В новом выпуске ASP CORE 2.0 в прошлом месяце они представили Razor Pages, это меня зациклило, так как старый контроллер и модель frpm MVC отсутствуют на страницах ASP CORE 2 Razor.
Насколько я понимаю из этой страницы, мы получаем привязку по умолчанию для свойства, использующие [BindProperty] attribute
вне действия / метода !!!!, это потому, что он перемещен в MVVM framework
, а не в MVC
фреймворк.
- Вопрос: При попытке переписать традиционные действия, поскольку контроллеров нет, как перейти к коду в новую структуру RazorPages MVVM, т.е. и где и как привязать свойства и действия / обработчики? Strong >
- Поскольку свойства не в подписи, как действие / обработчик узнает, какие свойства были переданы ему со страницы просмотра / Razor?
Что такое PageModel?
public class CreateModel : PageModel // what is this pagemodel, is it new or the same old model?
{
private readonly AppDbContext _db;
public CreateModel(AppDbContext db)
{
_db = db;
}
[BindProperty]
public Customer Customer { get; set; } // why is the property outside?
public async Task<IActionResult> OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
}
_db.Customers.Add(Customer);
await _db.SaveChangesAsync();
return RedirectToPage("/Index");
}
}