0

我正在使用属性来传递组件依赖项。这在使用依赖于 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
})
4

1 回答 1

1

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

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

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

// 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() {};

奇迹般有效!

于 2015-02-13T22:14:45.680 回答