问题描述
以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 (将#修改为@)