Razor Pages - 返回模型值

Razor Pages - Returning Model Value

我是 Razor 页面的新手,在将模型绑定回视图时遇到问题。

我正在使用 VS2019 版本 16.0.4。

这是我的页面模型:

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”并单击按钮,则断点会显示在递增到 6 之前收到值 5。但是,递增的值不会反映回视图。

我哪里错了?

模型绑定从 HTTP 请求中获取值并将它们绑定到处理程序方法参数或 PageModel 属性。它不是 two-way,并且不会将这些值绑定回这些值的来源控件。

您需要显式设置输入的 value 属性才能看到您期望的行为:

<input asp-for="PageIndex" value="@Model.PageIndex" />