我是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。但是,递增的值不会反映回视图。
我哪里出错了?
答案 0 :(得分:1)
模型绑定从HTTP请求中获取值,并将其绑定到处理程序方法参数或PageModel属性。它不是双向的,并且不会将这些值绑定回值起源的控件。
您需要显式设置输入的value
属性以查看您期望的行为:
<input asp-for="PageIndex" value="@Model.PageIndex" />