JSON.NET 属性作为 Javascript 函数
JSON.NET Property as Javascript Function
我有一个像这样的 C#class
public class Person
{
string firstname {get; set;}
string lastname {get; set;}
string onRenderFunction {get; set;}
}
然后我这样设置 class:
var superman = new Person
{
firstname = "Clark",
lastname = "Kent",
onRenderFunction = "renderPersonComplete"
}
我想要的是将 "onRenderFunction" 序列化为方法 - 而不是字符串。像这样;
{
"firstname": "Clark",
"lastname": "Kent",
"onRenderFunction": renderPersonComplete
}
因此,当通过 Ajax 调用返回序列化对象并将其提供给能够调用函数 "onRenderFunction" 的插件时,插件会看到函数已设置并调用函数设置如下:
var renderPersonComplete = function() {
alert('do something on render complete');
};
我如何设置 JSON.NET 序列化 Person class 来执行此操作?
你必须做一些额外的处理才能将函数分配给 属性 因为 JSON 根据定义只是基元的键值对,它不知道函数。
所以最初来自 ajax 的数据将如下所示:
var data = {
"firstname": "Clark",
"lastname": "Kent",
"onRenderFunction": "renderPersonComplete"
}
假设您在 window
的范围内有一个名为 renderPersonComplete
的函数:
window.renderPersonComplete = function() {
alert('do something on render complete');
};
现在您必须修改数据以分配函数:
data.onRenderFunction = window[data.onRenderFunction] // This assigns the function to onRenderFunction property.
函数的名称由服务器端根据您的逻辑决定。
我有一个像这样的 C#class
public class Person
{
string firstname {get; set;}
string lastname {get; set;}
string onRenderFunction {get; set;}
}
然后我这样设置 class:
var superman = new Person
{
firstname = "Clark",
lastname = "Kent",
onRenderFunction = "renderPersonComplete"
}
我想要的是将 "onRenderFunction" 序列化为方法 - 而不是字符串。像这样;
{
"firstname": "Clark",
"lastname": "Kent",
"onRenderFunction": renderPersonComplete
}
因此,当通过 Ajax 调用返回序列化对象并将其提供给能够调用函数 "onRenderFunction" 的插件时,插件会看到函数已设置并调用函数设置如下:
var renderPersonComplete = function() {
alert('do something on render complete');
};
我如何设置 JSON.NET 序列化 Person class 来执行此操作?
你必须做一些额外的处理才能将函数分配给 属性 因为 JSON 根据定义只是基元的键值对,它不知道函数。
所以最初来自 ajax 的数据将如下所示:
var data = {
"firstname": "Clark",
"lastname": "Kent",
"onRenderFunction": "renderPersonComplete"
}
假设您在 window
的范围内有一个名为 renderPersonComplete
的函数:
window.renderPersonComplete = function() {
alert('do something on render complete');
};
现在您必须修改数据以分配函数:
data.onRenderFunction = window[data.onRenderFunction] // This assigns the function to onRenderFunction property.
函数的名称由服务器端根据您的逻辑决定。