Я сам еще не использовал элементы управления Telerik MVC, но, глядя на API для LoadContentFrom , кажется, что этот метод (и вся его перегрузка) выполнит запрос GET по определенному URL. Перегрузка, которая приводит к тому, что объект передает параметры с большей вероятностью, не знает, как сериализировать списки (проверка HTTP-трафика даст более подробную информацию).
Ваш единственный вариант - использовать метод LoadContentFrom(String)
и передать ему отформатированный список дат как string
:
var dateArray = model.Dates.Select(d => d.ToString()).ToArray();
var serializedDateString = String.Join("#", dateArray);
items.Add()
.Text(item.Key.ToString() + " " + item.Count().ToString() + " visits")
.LoadContentFrom(Url.Action("SiteViewDetail","Report" new { dates = serializedDateString, url = model.URL}))
Тогда ваш контроллер должен выглядеть примерно так:
public ActionResult SiteViewDetail(string dates, string url)
{
SiteVisitDetailModel model = new SiteVisitDetailModel();
//split dates back into a List<DateTime>
model.Dates = dates.Split('#').Select(s => DateTime.Parse(s)).ToList<DateTime>();
model.URL = url;
return PartialView(model);
}
Это взломать (или, по крайней мере, не очень красиво), но это будет работать.