将 javascript 函数传递给 ReactJS.NET 服务器端

Passing a javascript function to ReactJS.NET Server side

我有一个非常基本但可能很复杂的问题。

我正在使用 ReactJS.net 在服务器端呈现 React 组件。我有一个 typeahead 组件,我在整个站点中多次使用它。它期望的属性之一是 javascript 过滤函数。

我不想为 typeahead 的每个实例创建一个单独的组件,但想将 javascript 函数作为 属性 传递,以便我可以重用整个站点的组件。

例如,要在服务器上呈现一个组件,我会执行以下操作。第二个参数是属性argment

@Html.React("Components.WorkSiteTypeahead", new { filterFn = model.SomeFunction })

现在,由于 ReactJS.net 需要本机 c# 对象(字符串、数组、列表等),我看不到任何直接传递 Javascript 函数的方法。关于如何告诉我的 MVC5 视图将我的函数呈现为字符串而不是字符串的任何想法?我的第一直觉是可能有某种 Javascript 原始类型我不知道,但没能找到它。

正如我所怀疑的,至少一种解决方法是使用 Newtonsoft 的 JRAW 类型。

@Html.React("Components.WorkSiteTypeahead", new { filterFn = JRaw("function(){//do stuff } "})