小编Dal*_*ron的帖子

参考循环处理忽略在Asp.Net Core 3.0 Preview 3上不起作用

我一直在用这个头撞墙,试图找出为什么它不起作用。我至今无法找到任何有关为什么它不起作用的信息,所以我在这里问。

我有一个在Asp.Net Core 3.0 Preview 3上运行的控制台应用程序。

在这个项目中,我遇到了一个Json循环问题,我知道可以通过将“启动”中的“参考循环处理”设置为“忽略”来解决。但是,我只能在.AddJsonOptions()中找到有关设置它的信息,Asp.Net Core 3.0中似乎没有。

我去了如何从2.1迁移到3.0的文档,发现了这一点

即使在相应地更改了我的代码之后

services.AddMvc()
     .AddNewtonsoftJson(
          options => { options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; }
      );
Run Code Online (Sandbox Code Playgroud)

我仍然收到一条错误消息:“检测到类型为[[模型名称]]的属性'[插入类名称]'的自引用循环”。

我还能在哪里设置Json忽略循环引用?

或者我该怎么做才能使这项工作?

谢谢高级

c# json.net asp.net-core

7
推荐指数
1
解决办法
1901
查看次数

如何解决“当前线程未与渲染器的同步上下文关联”的问题?

我正在尝试在blazor服务器端应用程序中更改用于标题的字符串。但是我无法更新用户界面。

我尝试使用StateHasChanged(),但是没有用,所以我环顾四周,发现在制作的FlightFinder演示中,它具有OnChange事件Action,因此我正在尝试实现它。

它一直有效,直到我尝试刷新浏览器,然后我被这个错误击中

System.InvalidOperationException:'当前线程未与渲染器的同步上下文关联。在触发渲染或修改渲染过程中访问的任何状态时,请使用Invoke()或InvokeAsync()将执行切换到渲染器的同步上下文。

这就是我所拥有的:

private string _title = "TestSite";
public string Title => _title;

public event Action OnChange;

public void ChangePage(string pageName)
{
   _title = pageName;
   NotifyStateChanged();
}

private void NotifyStateChanged(int navigationType = 0)
{
   OnChange?.Invoke();
}
Run Code Online (Sandbox Code Playgroud)

我所要做的就是调用ChangePage(“ some Page Title”),它可以工作,除非像我提到的那样,我尝试刷新。

我只是想通过另一个组件更改一个组件上的字符串,这听起来并不那么疯狂。如果有更好的方法来制作标题或更改其他组件中的内容,我很想听听。

那么,我该怎么做才能确保m调用方法在正确的线程上?还是有其他更有效的更改标题的方法?

先感谢您!

c# asp.net-core blazor blazor-server-side .net-core-3.0

2
推荐指数
3
解决办法
435
查看次数