2015-09-28 1 views
0

У меня есть этот JavaScript (я новичок в JavaScript так что простите меня)Что является эквивалентом этого объектов JavaScript в C#

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

Для меня это выглядит как массив массивов. и предупреждение дает:

FFF, 10,38, ддд, 56,33, сс, 24,03, и далее, 4,77, дд, 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, который использует объект данных, не нравится, что я возвращаюсь из модели. Я думаю, что я что-то упустил ...

так, как бы я смог создать объект var data в моей модели C#?

+0

Вы можете сделать это, используя 'анонимные типы' в C#. Проверьте это: https://msdn.microsoft.com/en-us/library/bb397696.aspx – Marcus

+1

ваш json: массив массива объекта или 'object [] []' – Grundy

+4

Вам необходимо преобразовать значение 'obs' для json. например 'var data = JSON.parse ('@ Html.Raw (Json.Encode (Model.obj))';' –

ответ

1

Когда вы непосредственно пишете объект в свой вид, он выполняет метод ToString().

Чтобы вставить данные в такой формат, с которым JavaScript может работать с ним, вам необходимо использовать JSON.

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

Обратите внимание, что JsonConvert является частью библиотеки Json.NET, которые вы можете получить, используя NuGet. Возможно, вы можете использовать собственный метод Json.Encode - он должен работать таким же образом.

+0

Спасибо - @StephenMuecke попал туда первым в комментариях, но, как вы дали ответ, вы получите галочку. – Rick