asp.net-mvc – 从ASP.NET MVC返回包含javascript函数的JSON
发布时间:2020-12-16 09:47:30 所属栏目:asp.Net 来源:网络整理
导读:我有一个类似 JSON的数据结构(我不想改变),当前由.aspx文件吐出javascript生成.看起来.NET在午餐时吃了jQuery,然后呕吐…… 我想将整个事情重写为一个返回JsonResult的MVC控制器动作,基本上是通过构建一个匿名对象并传递它来返回Json(数据). 但是,当我想构建
我有一个类似
JSON的数据结构(我不想改变),当前由.aspx文件吐出javascript生成.看起来.NET在午餐时吃了jQuery,然后呕吐……
我想将整个事情重写为一个返回JsonResult的MVC控制器动作,基本上是通过构建一个匿名对象并传递它来返回Json(数据). 但是,当我想构建的JSON对象的某些属性实际上是JavaScript函数时,我无法弄清楚如何构造C#对象.我怎么做? 例: 我想创建以下类似JSON的对象: { id: 55,name: 'john smith',age: 32,dostuff: aPredefinedFunctionHandle,isOlderThan: function(other) { return age > other.age } } 您看到我希望能够为我在其他地方定义的JavaScript函数指定两个函数句柄(通常在.js文件中),并且我想要定义新的内联函数. 我知道如何在C#中构建该对象的一部分: var data = new { id = 55,name = "john smith",age = 32 }; return Json(data); 还有什么好方法可以做其余的吗? 解决方法
.NET中没有内置类型映射到javascript函数.因此,您可能必须创建表示函数的自定义类型,并且您必须自己进行序列化.
像这样的东西…… public class JsFunction { public string FunctionString{get; set;} } new { id = 55,name = 'john smith',age = 32,dostuff = new JsFunction{ FunctionString = "aPredefinedFunctionHandle" },isOlderThan = new JsFunction{ FunctionString = "function(other) { return age > other.age" } } 在序列化时,您可能必须检查值的类型并将FunctionString直接写入响应而不使用双引号. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 使用NHibernate时如何处理成员资格/角色?
- .NET牛人应该知道些什么,我的回答
- asp.net-mvc – OnModelCreating与数据库配置的DataAnnotat
- asp.net-mvc – 在MVC SignalR服务器和Windows服务SIgnalR客
- 如何在Asp.Net 4.0 / IIS7中支持压缩的HTTP请求?
- asp.net-mvc-3 – @ Html.TextBoxFor文本框在验证失败后未突
- asp.net – visual studio 2017调试无法启动程序无效指针
- asp.net-mvc – 如何在MVC5中为用户分配角色?
- asp.net – 部署后SQL不会连接
- ASP.NET没有魔法——ASP.NET Identity 的“多重”身份验证代