Я не совсем понимаю связь между JS и ASP.NET MVC 3 Razor. Javascript работает на стороне клиента независимо от того, какая технология была использована на сервере для создания страницы. Таким образом, на JavaScript массив является массивом.
Есть несколько возможностей для определения массивов объектов в javascript
var activeDates = [ '7-21-2011', '7-22-2011' ];
или
var activeDates = new Array();
activeArrays.push('7-21-2011');
activeArrays.push('7-22-2011');
или еще:
var activeDates = new Array();
activeArrays[0] = '7-21-2011';
activeArrays[1] = '7-22-2011';
В конце все они представляют один и тот же массив. Но это массив строк , а не даты .
Если вы хотите иметь массив дат, вот что вы могли бы сделать:
var activeDates = [
new Date(2011, 6, 21, 0, 0, 0, 0),
new Date(2011, 6, 22, 0, 0, 0, 0)
];
Теперь единственное отношение, которое я вижу в вашем вопросе к ASP.NET MVC, - это то, что у вас, вероятно, есть какой-то массив в вашей модели представления:
public class MyViewModel
{
public DateTime[] ActiveDates { get; set; }
}
что вы хотели сериализовать и манипулировать в массиве javascript. В этом случае вот синтаксис:
@model MyViewModel
<script type="text/javascript">
var activeDates = @Html.Raw(Json.Encode(Model.ActiveDates));
</script>
Теперь из-за способа сериализации JSON полей DateTime в .NET вы получите следующее в сгенерированном HTML:
var activeDates = ["\/Date(1309471200000)\/","\/Date(1311199200000)\/"];
и если вы хотите преобразовать этот массив строк в массив фактических дат javascript:
var dates = $.map(activeDates, function(date, index) {
date = date.replace('/Date(', '').replace(')/', '');
return new Date(parseInt(date));
});