本文介绍了如何将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?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-02 08:35