如何在React.NET中导出JavaScript文本

How can I export a JavaScript literal in React.NET

本文关键字:JavaScript 文本 NET React      更新时间:2023-10-19

我正在使用属性传递组件依赖关系。当使用依赖于运行时库(如jQuery或SignalR)的代码进行服务器端渲染时,这一点尤为重要。在我的情况下,我需要在服务器端渲染我的组件,然后让JS连接到它,并在浏览器中流式传输实时数据。因此,我不需要SignalR服务器端,但我需要使用React.NET.在客户端传递对web套接字集线器的引用

@Html.React("Comments", new
{
    data = Model,
    conn = "$.hubConnection()" //<--- I need this to be a literal not a string
})

在挖掘React.NET的源代码后,我发现它使用Newtonsoft来序列化数据。所以您可以使用JRaw

@Html.React("Comments", new
{
    data = Model,
    conn = new Newtonsoft.Json.Linq.JRaw("$.hubConnection()")
})

然后我只需要包含一个简单的mock,这样它就不会在服务器端渲染过程中抛出错误。

// this file contains mocks for global variables that are referenced by server-side code but only needed client-side. For example SignalR.
// mock jQuery
var $ = jQuery = {};
// mock SignalR API
$.hubConnection = function() {};

工作起来很有魅力!