نحوه استفاده و نمایش Validation ها در Form در Blazor
سلام یک فرم در Blazor دارم که میخوام برای فیلدهای این فرم اعتبار سنجی رو انجام بدم. نحوه استفاده و نمایش Validation ها در Form در Blazor نمی دونم به چه شکلی هست. لطفا در این رابطه راهنمایی بفرمایید.
اعتبار سنجی فرم ها در 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 ها رو برای فرم فعال کنیم.
نصب پکیج System.ComponentModel.Annotations برای اعتبار سنجی Form ها در Blazor
جهت فعال کردن و استفاده از قابلیت های اعتبارسنجی فیلدها در Form پکیج زیر را از طریق nuget نصب کنید.
System.ComponentModel.Annotations
نمایش خطاهای اعتبارسنجی توسط DataAnnotationsValidator
خب حالا برای نمایش خطاهای اعتبارسنجی میتونید از دستورات زیر استفاده کنید. این دستورات رو میتونید در درون تگ EditForm در بالای تگ قرار بدید.
<EditForm Model="customer" OnValidSubmit="Create">
<DataAnnotationsValidator />
<ValidationSummary />
...
</EditForm>
در این حالت خطاهای مربوط به اعتبارسنجی در بالای فرم نمایش داده می شود.
نمایش خطاهای اعتبارسنجی توسط ValidationMessage
راه بعدی برای نمایش خطاهای اعتبار سنجی این هست که خطا رو دقیقا زیر همون فیلد نمایش بدیم. برای این منظور بعد از هر فیلد میتونید دستور زیر رو بنویسید.
<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 کلیک کنید باید خطاهای اعتبارسنجی رو ببینید.
اطلاعات بیشتر
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- تفاوت بین Blazor و Angular و react.js چیست ؟
- Blazor چیست ؟ کاربرد Blazor در وب چیست ؟
- فرق بین (Blazor Client (web Assembly و Blazor Server چیست ؟
- پروژه از نوع Blazor چگونه کار می کند؟
- نمایش فرم مودال (Pop up) در بلیزر چگونه است ؟
- کامپوننت (Component) در بلیزر (Blazor) چیست ؟ کاربرد Component چیست ؟
- ارسال مقادیر بین کامپوننت ها در Blazor چگونه می باشد ؟ ارتباط بین کامپوننت ها در بلیزر
- کاربرد پارامتر RenderFragment در Blazor چیست ؟
- دلیل خطای component name cannot start with a lowercase charachter در Blazor
- مفهوم و کاربرد Event CallBack در Blazor چیست ؟