【发布时间】:2015-11-06 18:14:45
【问题描述】:
大家晚上好,
我知道这个问题很老,但我无法用其他问题解决它,例如:How do I convert a C# List<string[]> to a Javascript array?。我对此很陌生。
我想在我的 javascript 中使用该数组,以显示日期为事件的日期选择器。我的脚本(datepicker.js):
$(document).ready(function() {
var array = []; //array that should be filled with dates like this ["29-09-2015", "..."]
$("#datepicker").datepicker({
numberOfMonths: 3,
beforeShowDay: function (date) {
if ($.inArray($.datepicker.formatDate('yy-mm-dd', date), array) > -1) {
return [false, "", " no"];
}
else {
return [true, "", "yes"];
}
}
});
});
我的控制器如下所示:
public ActionResult Index(int EID = 0, int CID = 0, int IID= 0)
{
var dates = db.Histories.Where(p => p.SiteId == EID && p.CId == CID && p.IId == IID).Select(p => SqlFunctions.StringConvert((double)
SqlFunctions.DatePart("m", p.Date)).Trim() + "-" +
SqlFunctions.DateName("dd", p.Date) + "-" +
SqlFunctions.DateName("yyyy", p.Date));
dates = dates.OrderBy(u => u.Length);
int datescount = dates.Count();
List<string> sList = new List<string>();
for(int i =0; i<datescount; i++)
{
sList.Add(dates.Skip(i).First());
}
return View();
}
在控制器中,列表 sList 包含我想显示为事件的日期。
在视图中,我已经看到的日期选择器将被这样调用:
Date: <div id="datepicker"></div>
所以现在我想将列表发送到脚本并将其转换为数组。 你能解释一下怎么做吗?
在另一页上,我不明白 Romoku 的意思:
//View.cshtml
<script type="text/javascript">
var arrayOfArrays = JSON.parse('@Html.Raw(Model.Addresses)');
如果我使用 json,我是否必须将列表传输到模型?身份证有什么用?怎么转成json方法?
【问题讨论】:
-
您可以将整个 C# 循环替换为
.ToList()。 -
否,然后他显示错误错误:无法将方法组“ToList”转换为非委托类型“System.Linq.IQueryable
”。您是否打算调用该方法?该列表完成了这项工作。 -
没有。 阅读错误信息。您需要调用该函数。
-
谢谢,这样会更快,但这不是真正的问题...
-
您需要将列表序列化为 JSON,然后将该 JSON 作为 Javascript 文字发出。
标签: javascript arrays json asp.net-mvc-4 datepicker