加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET MVC 3 Razor:初始化一个JavaScript数组

发布时间:2020-12-15 18:34:16 所属栏目:asp.Net 来源:网络整理
导读:在ASP.NET MVC 3中使用Razor初始化JS数组的首选方法是在我的模型/视图模型中具有哪些值? 例如,初始化表示日期的字符串数组: script type="text/javascript" var activeDates = ["7-21-2011","7-22-2011"];/script 同 public class MyViewModel{ public Da
在ASP.NET MVC 3中使用Razor初始化JS数组的首选方法是在我的模型/视图模型中具有哪些值?

例如,初始化表示日期的字符串数组:

<script type="text/javascript">
    var activeDates = ["7-21-2011","7-22-2011"];
</script>

public class MyViewModel
{    
  public DateTime[] ActiveDates { get; set; }
}

解决方法

我不太明白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),new Date(2011,22,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>

现在由于DateTime字段是在JSON中序列化的方式,所以您将在生成的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));
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读