Как повторно использовать свойства из PageModel после вызова OnPost? - PullRequest
0 голосов
/ 17 марта 2020

Сейчас я работаю над проектом без БД. У меня есть модель с методом OnGet, который присваивает значения некоторым свойствам при загрузке страницы.

Для страницы просмотра у меня есть форма, которая нуждается в фиктивном методе OnPost, который делает ... что угодно (перезагрузить страницу или что-нибудь еще). Проблема в том, что при отправке формы свойства не заполняются, а данные не сохраняются, поэтому происходит сбой приложения.

Что может быть полезным для повторного заполнения данных в методе OnPost? Два пути могут быть:

  1. Звоните OnGet внутри OnPost:
public void OnPost()
{
    this.OnGet();
}

Но это кажется ... странным ...

Переопределить значения, которые у меня были изначально в OnGet внутри OnPost
public void OnPost()
{
    PropertyOne = "First Value";
    PropertyTwo = "Second Value";
}

Какие еще варианты у меня есть здесь?

1 Ответ

0 голосов
/ 17 марта 2020

Наиболее распространенный подход, который вы, скорее всего, увидите, это второй подход, где вы явно инициализируете значения свойств в методе OnPost. Вызов OnGet в методе OnPost с большей вероятностью приведет к нежелательным побочным эффектам в реальных приложениях. Поэтому альтернативой является создание частного метода, который инициализирует свойства или выполняет другие задачи, необходимые для любого запроса, независимо от глагола HTTP-запроса:

private async Task DoStuff()
{
    Prop1 = await db.Something();
    Prop2 = await db.SomethingElse()
}

public async Task OnGet()
{
    await DoStuff();
}

public async Task OnPost()
{
    await DoStuff();
}
...