大家晚上好,
我知道这个问题已经过时了,但我无法用其他问题来解决这个问题: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包含我想要显示为事件的日期。
在视图中,我已经可以看到的datepicker将被调用如下:
Date: <div id="datepicker"></div>
所以现在我想将列表发送到脚本并将其转换为数组。 你能解释一下怎么做吗?
在另一页上,我不明白Romoku的意思:
//View.cshtml
<script type="text/javascript">
var arrayOfArrays = JSON.parse('@Html.Raw(Model.Addresses)');
如果我使用json,是否必须将列表传输到模型? ID是什么?如何将它们转移到json方法?
答案 0 :(得分:0)
JSON 是有效的Javascript。您只需要将序列化的JSON作为普通的Javascript表达式发出:
var arrayOfArrays = @Html.Raw(your JSON);
答案 1 :(得分:0)
在您的控制器中将列表作为模型返回到您的视图
{
/// code ..
return View(sList);
}
并且您的View试试这个
@model List<string>
@{
string jsonObject = Newtonsoft.Json.JsonConvert.SerializeObject(Model);
}
<script type="text/javascript">
var array = @Html.Raw(jsonObject)
$(document).ready(function() {
$("#datepicker").datepicker({
numberOfMonths: 3,
beforeShowDay: function (date) {
if ($.inArray($.datepicker.formatDate('yy-mm-dd', date), array) > -1) {
return [false, "", " no"];
}
else {
return [true, "", "yes"];
}
}
});
});
</script>