Blazor⼊⼿教程(七)表单Blazor⼊⼿教程(七)表单
Blazor为表单元素定义了⼀些内置组件
除此之外还有EditForm组件搭配起来⼗分好⽤
EditForm 提供了⼀系列数据验证的属性/⽅法,这样我们不⽤⾃⼰再去实现了。
属性/⽅法名说明
Modal表单实体模型,必填
OnValidSubmit/OnInvalidSubmit提交表单时,验证通过/未通过的回调函数
OnSubmit提交表单时的回调函数,和上⾯的两个属于“或”的关系,
使⽤了OnValidSubmit/OnInvalidSubmit就不能再使⽤OnSubmit。同
理,使⽤了OnSubmit就不能使⽤OnValidSubmit/OnInvalidSubmit。
OnSubmit可以⽤来做⼀些⾃定义的验证
OnSubmit可以⽤来做⼀些⾃定义的验证DataAnnotationsValidator启⽤数据注解验证,就是特性验证。
ValidationSummary验证结果摘要。验证不合法时,会在表单的顶部⽤html标签显⽰具体
错误。也是继承⾃ComponentBase的⼀种组件
模型验证数据注解
验证结果摘要ValidationSummary
Blazor提供的验证能应对绝⼤多数场景,如果有特殊的场景,你也可以⾃定义实现⼀些验证。
相关代码:
@page "/FormSample"
@using System.ComponentModel.DataAnnotations;
writeline教程<h3>表单</h3>
<p>@stu.ToString()</p>
<EditForm Model="@stu" OnValidSubmit="onValidSubmit" OnInvalidSubmit="onInvalidSubmit">
<DataAnnotationsValidator></DataAnnotationsValidator>
<ValidationSummary></ValidationSummary>
<div class="form-inline">
姓名:<InputText @bind-Value="stu.name"></InputText>
</div>
<div class="form-inline">
年龄:
</div>
<div class="form-inline">
⽣⽇:<InputDate @bind-Value="stu.birthday"></InputDate>
</div>
<div class="form-inline">
是否婚配: <InputCheckbox @bind-Value="stu.ismarried"></InputCheckbox>
</div>
<div class="form-inline">
现居城市:
<InputSelect @bind-Value="stu.city">
<option value="北京">北京</option>
<option value="上海">上海</option>
<option value="⼴州">⼴州</option>
<option value="深圳">深圳</option>
</InputSelect>
</div>
<button type="submit">OK</button>
</EditForm>
@code {
public class student
{
[Required]
[MaxLength(length:10, ErrorMessage ="名字最⼤长度不能超过10位")]
public string name { get; set; } = "⼩爵"; //姓名
[Range(18,45,ErrorMessage ="年龄必须在18-45岁之间")]
public int age { get; set; } = 28; //年龄
public DateTime birthday { get; set; } = System.DateTime.Now;//⽣⽇
public string city { get; set; } = "北京"; //所在城市
public bool ismarried { get; set; } = false; //是否婚配
public override string ToString()
{
return $"姓名:{name},年龄:{age},⽣⽇:{birthday},城市:{city},是否婚配:{ismarried}"; }
}
public student stu = new student() { };
private EditContext editContext;
protected override void OnInitialized()
{
editContext = new EditContext(stu);
}
public void onSubmit( )
{
Console.WriteLine("on onSubmit");
}
public void onValidSubmit( )
{
Console.WriteLine("on onValidSubmit");
}
public void onInvalidSubmit( )
{
Console.WriteLine(" onInvalidSubmit");
}
}
⽬录
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论