I no entiendo muy bien la relación entre JS y ASP.NET MVC 3 Razor. Javascript se ejecuta en el lado del cliente sin importar qué tecnología se haya utilizado en el servidor para generar la página. Entonces, en javascript, una matriz es una matriz.
Hay un par de posibilidades para definir las matrices de objetos en javascript
var activeDates = [ '7-21-2011', '7-22-2011' ];
o:
var activeDates = new Array();
activeArrays.push('7-21-2011');
activeArrays.push('7-22-2011');
o todavía:
var activeDates = new Array();
activeArrays[0] = '7-21-2011';
activeArrays[1] = '7-22-2011';
La o final todos los que representan la mismo conjunto. Pero es una matriz de cadenas, no fechas.
Si quería tener una serie de fechas, esto es lo que podría hacer:
var activeDates = [
new Date(2011, 6, 21, 0, 0, 0, 0),
new Date(2011, 6, 22, 0, 0, 0, 0)
];
Ahora la única relación que puedo ver con su pregunta a ASP.NET MVC es que es probable que tenga un poco de variedad en su modelo de vista:
public class MyViewModel
{
public DateTime[] ActiveDates { get; set; }
}
que quería serializar y manipular en una matriz javascript. En este caso, aquí está la sintaxis:
@model MyViewModel
<script type="text/javascript">
var activeDates = @Html.Raw(Json.Encode(Model.ActiveDates));
</script>
ahora a causa de los campos manera DateTime se JSON serializado en .NET que va a terminar con lo siguiente en el HTML generado:
var activeDates = ["\/Date(1309471200000)\/","\/Date(1311199200000)\/"];
y si querías para convertir esta matriz de cadenas en una matriz de fechas reales de javascript:
var dates = $.map(activeDates, function(date, index) {
date = date.replace('/Date(', '').replace(')/', '');
return new Date(parseInt(date));
});
Ajustado mi pregunta para tener una mejor descripción del problema, gracias! – Matthieu
+1 - Incluso puede acortar la función de mapa para usar 'new Date (parseInt (date.substr (6)));' ya que 'parseInt' ignorará el final')/'. – TheCloudlessSky
@DarinDimitrov No estamos mezclando C# y JS aquí. Estamos tratando de presentar una declaración a través de la cuchilla C# que el compilador JS puede tomar e inicializar una matriz. – Lakshay