剃刀页面-返回模型值

时间:2019-05-16 13:55:25

标签: .net-core model-binding razor-pages

我是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 个答案:

答案 0 :(得分:1)

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

您需要显式设置输入的value属性以查看您期望的行为:

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