Razor Pages - Возвращение значения модели - PullRequest
0 голосов
/ 16 мая 2019

Я новичок на страницах Razor и у меня проблемы с привязкой модели к представлению.

Я использую VS2019 версии 16.0.4.

Это мой PageModel:

public class IndexModel : PageModel
{
    [BindProperty]
    public int PageIndex { get; set; }

    public IActionResult OnPost()
    {
        PageIndex++;
        return Page();
    }
}

И мой вид:

@page
@model IndexModel

<form method="post">
    <div class="form-group">
        <label asp-for="PageIndex"></label>
        <input asp-for="PageIndex" class="form-control" />
        <span class="text-danger" asp-validation-for="PageIndex"></span>

        <button type="submit" class="btn btn-primary">Increment</button>
    </div>
</form>

Я ожидаю, что значение, отображаемое в элементе управления вводом, будет увеличиваться при каждом щелчке - но оно остается равным нулю.Привязка к контроллеру работает нормально.Если я введу значение «5» и нажму кнопку, то точка останова покажет мне, что значение 5 получено, а затем увеличено до 6. Однако увеличенное значение не отражается обратно в представление.

Где я ошибся?

1 Ответ

1 голос
/ 16 мая 2019

Привязка модели берет значения из HTTP-запроса и связывает их с параметрами метода-обработчика или свойствами PageModel.Он не является двусторонним и не привязывает эти значения обратно к элементам управления, откуда эти значения возникли.

Вам необходимо явно установить атрибут value для ввода, чтобы увидеть ожидаемое поведение:

<input asp-for="PageIndex" value="@Model.PageIndex" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...