سلام یک فرم در Blazor دارم که میخوام برای فیلدهای این فرم اعتبار سنجی رو انجام بدم. نحوه استفاده و نمایش Validation ها در Form در Blazor نمی دونم به چه شکلی هست. لطفا در این رابطه راهنمایی بفرمایید.
برای اعتبارسنجی فرم ها در Blazor راههای مختلفی وجود دارد. شما هم میتوانید از طریق Server Side و هم به صورت Client Side اعتبارسنجی فرم ها در Blazor را انجام دهید. اما برای انجام Validation در form ها در Blazor دو راه مهم تر و پراستفاده تر در ادامه توضیح داده میشه.
در ابتدا یک کلاس با نام Customer ایجاد می کنیم. این کلاس در واقع یک انتیتی هست و شامل فیلدهای زیر می باشد.
کلاس Customer
public class Customer
{
[Key]
public int Id { get; set; }
[Required(ErrorMessage = "نام مشتری وارد نشده است")]
public string CustomerName { get; set; }
[Required(ErrorMessage = "تلفن مشتری وارد نشده است")]
public string CustomerTel { get; set; }
}
خب حالا کدهای زیر را در صفحه index بنویسید.
صفحه Index.razor
@page "/"
<EditForm Model="customer" OnValidSubmit="Create">
<label>Customer Name :</label>
<br />
<InputText @bind-Value="customer.CustomerName" />
<br />
<label>Customer Address :</label>
<br />
<InputText @bind-Value="customer.CustomerTel" />
<button type="submit" class="btn btn-success">Create Customer</button>
</EditForm>
@code {
Customer customer;
protected override void OnInitialized()
{
customer = new Customer();
}
private void Create()
{
}
}
خب حالا اگر برنامه رو اجرا کنید چنین چیزی رو مشاهده می کنید.
خب تا اینجا یک فرم ساده رو داشتیم. اما حالا چجوری Validation ها رو برای فرم فعال کنیم.
جهت فعال کردن و استفاده از قابلیت های اعتبارسنجی فیلدها در Form پکیج زیر را از طریق nuget نصب کنید.
System.ComponentModel.Annotations
خب حالا برای نمایش خطاهای اعتبارسنجی میتونید از دستورات زیر استفاده کنید. این دستورات رو میتونید در درون تگ EditForm در بالای تگ قرار بدید.
<EditForm Model="customer" OnValidSubmit="Create">
<DataAnnotationsValidator />
<ValidationSummary />
...
</EditForm>
در این حالت خطاهای مربوط به اعتبارسنجی در بالای فرم نمایش داده می شود.
راه بعدی برای نمایش خطاهای اعتبار سنجی این هست که خطا رو دقیقا زیر همون فیلد نمایش بدیم. برای این منظور بعد از هر فیلد میتونید دستور زیر رو بنویسید.
<InputText @bind-Value="customer.CustomerName" />
<ValidationMessage For="@(() => customer.CustomerName)" />
خب بنابراین Form شما به صورت زیر میشه :
<EditForm Model="customer" OnValidSubmit="Create">
<DataAnnotationsValidator />
<ValidationSummary />
<label>Customer Name :</label>
<br />
<InputText @bind-Value="customer.CustomerName" />
<ValidationMessage For="@(() => customer.CustomerName)" />
<br />
<label>Customer Address :</label>
<br />
<InputText @bind-Value="customer.CustomerTel" />
<ValidationMessage For="@(() => customer.CustomerTel)" />
<button type="submit" class="btn btn-success">Create Customer</button>
</EditForm>
حالا اگر برنامه رو مجددا اجرا کنید و روی دکمه Create Customer کلیک کنید باید خطاهای اعتبارسنجی رو ببینید.
اطلاعات بیشتر
تاریخ :
1403/12/30
- ساعت :
06:43:00 PM
- بازدید :
68
- پاسخ :
1
|
تاریخ :
1403/12/30
- ساعت :
06:52:00 PM
- بازدید :
50
- پاسخ :
1
|
تاریخ :
1403/12/27
- ساعت :
05:26:00 PM
- بازدید :
93
- پاسخ :
1
|
تاریخ :
1403/11/30
- ساعت :
12:08:00 PM
- بازدید :
149
- پاسخ :
1
|
تاریخ :
1399/12/21
- ساعت :
10:20:00 AM
- بازدید :
2769
- پاسخ :
1
|
تاریخ :
1399/12/20
- ساعت :
10:32:00 AM
- بازدید :
2624
- پاسخ :
1
|
تاریخ :
1403/12/24
- ساعت :
06:18:00 PM
- بازدید :
83
- پاسخ :
1
|
تاریخ :
1403/12/26
- ساعت :
03:13:00 PM
- بازدید :
67
- پاسخ :
1
|
تاریخ :
1403/12/26
- ساعت :
03:04:00 PM
- بازدید :
70
- پاسخ :
1
|
تاریخ :
1399/09/20
- ساعت :
01:21:00 PM
- بازدید :
6833
- پاسخ :
1
|
تاریخ :
1404/01/07
- ساعت :
05:02:00 AM
- بازدید :
90
- پاسخ :
1
|
تاریخ :
1402/04/28
- ساعت :
09:04:00 PM
- بازدید :
1315
- پاسخ :
0
|
تاریخ :
1403/12/30
- ساعت :
06:43:00 PM
- بازدید :
68
- پاسخ :
1
|
تاریخ :
1398/08/23
- ساعت :
09:16:00 PM
- بازدید :
9853
- پاسخ :
1
|
تاریخ :
1404/01/03
- ساعت :
12:18:00 PM
- بازدید :
38
- پاسخ :
1
|
تاریخ :
1404/01/03
- ساعت :
10:39:00 AM
- بازدید :
46
- پاسخ :
1
|
تاریخ :
1404/01/02
- ساعت :
05:05:00 PM
- بازدید :
60
- پاسخ :
1
|
تاریخ :
1403/12/30
- ساعت :
06:52:00 PM
- بازدید :
50
- پاسخ :
1
|
تاریخ :
1399/06/04
- ساعت :
02:25:00 PM
- بازدید :
4421
- پاسخ :
2
|
تاریخ :
1403/11/30
- ساعت :
10:36:00 AM
- بازدید :
203
- پاسخ :
2
|