设置默认的JSON序列化程序以将原始字母大小写保留在Blazor中

问题描述

this Blazor项目为例。它定义了interop方法

后端使用带有Title或Pascal大小写的标准C#编码约定,这意味着每个属性的首字母均为大写。同时,当对象通过JS interop方法传递到前端时,该模型将自动序列化为驼峰式JSON。

问题

如果我没有MVC,控制器等,如何覆盖Blazor中的认串行器?

Startup.cs

public void Configure(IApplicationBuilder app,IWebHostEnvironment env)
{
  app.UseDeveloperExceptionPage();
  app.UseHttpsRedirection();
  app.UseStaticFiles();
  app.UseRouting();
  app.UseEndpoints(endpoints =>
  {
    endpoints.MapBlazorHub();
    endpoints.MapFallbackToPage("/Host");
  });
}

C#互操作

public class SeriesService
{
  public async Task CreateSeries(IJSRuntime scriptRuntime,SomeModel model)
  {
    await scriptRuntime.InvokeVoidAsync("chartFunctions.create",model);
  }
}

JS互操作

window.chartFunctions = window.chartFunctions || {
  create: (model) => {
    // Here,the model already has a camel case,but I'd like to preserve original case defined in C#
    // model { id: 1,name: "Demo" }
  }
};

SomeModel

public class SomeModel 
{
  public int Id { get; set; }
  public string Name { get; set; }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)