Почему в Razor pages на страницу попадают старые значения свойств, измененных в обработчике OnGet
Я сделал простую форму на странице:
<form method="post">
<input asp-for="SomeText" />
<input type="submit" class="btn-primary" value="Send Query"/>
</form>
Модель выглядит так:
public class IndexModel : PageModel
{
[BindProperty(SupportsGet =true)]
public string SomeText { get; set; }
public void OnGet()
{
SomeText = SomeText + "1";
}
public IActionResult OnPost()
{
return RedirectToPage(new {SomeText});
}
}
Когда страница открывается впервые, в поле "SomeText" попадает значение "1" как и должно быть. Но когда я вбиваю в это поле скажем строковое значение "Нечто" и нажимаю кнопку "Send Query" в этом поле появляется значение "Нечто" хотя я ожидаю что там будет "Нечто1". Как я понял, если свойство привязано к параметру запроса GET и такой параметр есть в запросе, то HTML игнорирует любые изменения в свойстве и берет значение прямо из параметра. Если же параметр не установлен, то в HTML попадает установленное в коде значение. Какая в этом логика, почему так?