如果您重新填写表单值
[BindProperty]
在相关的PageModel属性上使用属性,asp-for
属性在UI(剃须刀内容页面)中建立双向绑定return Page()
的事件ModelState.IsValid == false
。以下是证明这一点的最少步骤:
表单:
<form method="post">
<input asp-for="FirstName"/><span asp-validation-for="FirstName"></span><br />
<input type="submit" />
</form>
和PageModel:
public class FormValidationModel : PageModel
{
[BindProperty, StringLength(5)]
public string FirstName { get; set; }
public IActionResult OnPost()
{
if (!ModelState.IsValid)
{
return Page();
}
return RedirectToPage("index");
}
}
感谢Mike的回复。好吧,我知道这可以工作,但是当您将属性与dropdown(select)绑定在一起时,什么工作不起作用。例如,如果我绑定一个下拉列表并在表单上将其值选择为“ ABC”并回发,并且如果模型状态失败,则无法重新绑定该选择列表并使ABC作为表单上的选定值
迈克·布林德,我把这个排序了。谢谢你的帮助
您是如何排序的?
@JacobAlley如果用于表示所选值的
[BindProperty]
属性通过向其添加属性而成为可绑定的,则select标记帮助器将自动为您排序。