Почему в 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 попадает установленное в коде значение. Какая в этом логика, почему так?


Ответы (0 шт):