创建一个json字符串,其值为使用c#的函数

时间:2016-01-07 06:19:32

标签: c# json

我需要在控制器中创建一个json字符串,如下所示,并将其发送到查看它绑定到我的js代码的位置..

{
    id: 'state',
    label: 'State',
    options: [
        { id: "AL", name: "Alabama" },
        { id: "AK", name: "Alaska" },
        { id: "AZ", name: "Arizona"}            
      ],
    valueSetter: function(rule, value) {
      rule.$el.find('.rule-value-container select')[0].setValue(value);
    }
  }

ID,标签和选项是动态生成的,我已经使用JObject和JArray完成了 如下......

JObject parameter1 = new JObject();
parameter1["id"] ="state";
//And so on...

valueSetter中的部分不是动态的,但我如何生成这样的内容。

真心感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:1)

您可以返回一个变量,该变量本身将一个函数作为字符串返回。复制自here

的第二个答案
public class JSObj
{
    public string Title { get; set; }
    public int UpperVal { get; set; }
    public int LowerVal { get; set; }
    public object MouseOver
    {
        get
        {
            // use JRaw to set the value of the anonymous function
            return new JRaw(string.Format(@"function(){{ return {0}; }}", UpperVal - LowerVal));
        }
    }
}

// and then serialize using the JsonConvert class
var obj = new JSObj { Title = "Test", LowerVal = 4, UpperVal = 10 };
var jsonObj = JsonConvert.SerializeObject(obj);