Как я могу экспортировать литерал JavaScript в React.NET

Я использую свойства для передачи зависимостей компонентов. Это особенно важно при выполнении рендеринга на стороне сервера с кодом, который зависит от библиотек времени выполнения, таких как jQuery или SignalR. В моем случае мне нужно визуализировать свой компонент на стороне сервера, затем подключить к нему JS и передавать данные в реальном времени в браузере. Поэтому мне не нужна серверная часть SignalR, но мне нужно передать ссылку на концентратор веб-сокетов на клиенте с помощью React.NET.

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

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

Работает как шарм!

Другие вопросы по тегам