本文介绍了如何将ViewModel本地化添加到Blazor?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我们都知道Blazor中缺少ViewModel本地化
We all know the lack of ViewModel localization in Blazor
今天,我尝试了许多方法,并且想出了一个很好的方法来应用本地化
Today i tried many ways, and i came up with a good method to be followed to apply localization
推荐答案
- 您可以为所有属性(例如"ProductViewModelBase")创建抽象的基本ViewModel.
- 然后将所有ViewModelBase属性设置为虚拟
public abstract class ProductViewModelBase
{
public virtual string ProductCode { get; set; }
public virtual string ProductType { get; set; }
public virtual string ProductName { get; set; }
}
- 然后使用ViewModel语言覆盖所有属性,并添加特定的语言消息和验证规则.
public class ProductViewModelAR : ProductViewModelBase
{
[Required(ErrorMessage = "خطأ")]
public override string ProductCode { get; set; }
}
public class ProductViewModelEN : ProductViewModelBase
{
[Required(ErrorMessage = "Error")]
public override string ProductCode { get; set; }
}
- 在Blazor组件中,检查要加载哪个ViewModel
ProductViewModelBase ViewModel;
protected override void OnInitialized()
{
if (CultureInfo.CurrentUICulture.Name == "ar-EG")
{
ViewModel = new ProductViewModelAR();
}
else
{
ViewModel = new ProductViewModelEN();
}
}
现在,您可以在EditForm中使用此ViewModel
<EditForm Model="ViewModel" OnValidSubmit="ValidSubmit" OnInvalidSubmit="InValidSubmit">
<DataAnnotationsValidator />
<ValidationSummary />
</EditForm>
,然后在运行时应用将根据所选语言决定要加载哪个ViewModel版本
这篇关于如何将ViewModel本地化添加到Blazor?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!