c#中这个javascript对象的等价物是什么

时间:2015-09-28 09:47:39

标签: javascript c# asp.net-mvc

我有这个javascript(我是javascript的新手,请原谅我)

var data = [
            ['fff',   10.38],
            ['ddd',       56.33],
            ['ss', 24.03],
            ['ff',    4.77],
            ['dd',     0.91]
        ];
alert(data);

对我而言,这看起来像一个数组数组。警报给出:

  
    

FFF,10.38,DDD,56.33,SS,24.03,FF,4.77,DD,0.91

  

我试图在c#模型中创建它 - 我已经尝试了很多,但似乎从来没有提供完全相同的结果。

alert('@Model.obs');

模型是:

//property
public object[] obs { get; set; }

//contructor
public EmployeeAbsenceChartViewModel()
{
    object[] obbs1 = new object[2];
    obbs1[0] = "rick";
    obbs1[1] = 3;

    object[] obbs2 = new object[2];
    obbs2[0] = "rick";
    obbs2[1] = 3;

    obs = new object[] { obbs1, obbs2 };
}

@Model.obs的提醒结果

  
    

System.Object的[]

  

这应该很简单,但使用数据对象的javascript并不像我从模型中返回的那样。我想我,在某个地方遗漏了什么......

那么,如何在我的c#模型中重新创建var data对象?

1 个答案:

答案 0 :(得分:1)

当您直接将对象写入View时,它会执行ToString()方法。

为了以JavaScript可以使用的格式插入数据,您需要使用JSON。

alert('@Html.Raw(JsonConvert.SerializeObject(Model.obs))');

请注意,JsonConvert是JSON.NET库的一部分,您可以使用NuGet获取它。也许,您可以使用Json.Encode本机方法 - 它应该以相同的方式工作。