Очистка формы после публикации при использовании привязки модели Razorpages - PullRequest
1 голос
/ 03 апреля 2020

Я использую Razor Pages с привязкой модели. Когда моя форма отправляет сообщения, значения остаются там, когда страница перезагружается после публикации. Я пытался использовать ModelState.Clear (), но это, похоже, ничего не делает.

В частности, у меня есть форма HTML, подобная этой:

  <form method="post">
        <textarea asp-for="Input.Text" class="form-control" placeholder="No data"></textarea>

        <button type="submit" asp-route-param="Submit">Submit</button>
    </form>

и следующий контроллер :

public class TestFormModel : PageModel
    {
        [BindProperty]
        public InputModel Input { get; set; }

        public IActionResult OnPost()
        {
            ModelState.Clear(); 
            return Page();
        }
    }

    public class InputModel
    {
        public string Text {get;set;}

    }

При отправке форма запоминает отправленный текст - я хочу, чтобы он был очищен.

Я могу сделать это с помощью jQuery на стороне клиента, но мне было интересно, есть трюк с RazorPages. Кажется, ModelState.Clear () не выполняет то, что я хочу.

Большое спасибо

1 Ответ

0 голосов
/ 03 апреля 2020

Вместо return Page(), вместо этого перенаправьте на него:

public IActionResult OnPost()
{
    return RedirectToPage("/TestForm");
}

Это вызовет новый запрос GET.

Сказав это, обычным способом является перенаправление на другую страницу, если отправка формы прошла успешно, а не представление формы снова.

...