Blazor入手教程(七)表單


 

Blazor入手教程(七)表單

 

Blazor為表單元素定義了一些內置組件

 

 

 

除此之外還有EditForm組件搭配起來十分好用

 

 

 

EditForm 提供了一系列數據驗證的屬性/方法,這樣我們不用自己再去實現了。

 

 

屬性/方法

說明

Modal

表單實體模型,必填

OnValidSubmit/OnInvalidSubmit

提交表單時,驗證通過/未通過 的回調函數

OnSubmit

提交表單時的回調函數,和上面的兩個屬於“或”的關系,

使用了OnValidSubmit/OnInvalidSubmit就不能再使用OnSubmit。同理,使用了OnSubmit就不能使用OnValidSubmit/OnInvalidSubmit

OnSubmit可以用來做一些自定義的驗證

DataAnnotationsValidator

 

啟用數據注解驗證,就是特性驗證。

ValidationSummary

驗證結果摘要。驗證不合法時,會在表單的頂部用html標簽顯示具體錯誤。也是繼承自ComponentBase的一種組件

 

模型驗證數據注解

 

 

 

驗證結果摘要ValidationSummary

 

 

 

Blazor提供的驗證能應對絕大多數場景,如果有特殊的場景,你也可以自定義實現一些驗證。

 

相關代碼:

 

@page "/FormSample"
@using System.ComponentModel.DataAnnotations;
<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");

    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM