Хорошо, пару вещей, чтобы попробовать:
1) dataType
- ожидаемый результат вызова ajax. В вашем случае вы отправляете JSON, но получаете HTML. Параметр content-type
указывает запрос, который у вас есть (и то, что у вас правильно). Таким образом, тип данных должен быть:
dataType: 'html',
2) Вам нужно сериализовать JSON. Попробуйте захватить легковесную библиотеку JSON и stringify 'ing:
var test = { test: 'testvalue' };
$.ajax {
...
data: JSON.stringify(test),
...
});
Гораздо проще, чем пытаться привести строку JSON к кавычкам. Создайте обычную переменную JS, а затем зафиксируйте ее.
Остальная часть вашего кода выглядит нормально.
Если это проблема с HTML / разметкой самого частичного представления, запустите в режиме отладки, и Visual Studio должен остановиться на строке в разметке, которая вызывает проблему.
Дополнительная подсказка : ASP.NET MVC 3 включает встроенную привязку модели JSON. Таким образом, вы можете создать базовое POCO, соответствующее полям вашего объекта JSON, а затем принять его как строго типизированный объект в методе действия:
[HttpPost]
public ActionResult Grab(MyJsonObject obj)
{
DateTime lineDate= Convert.ToDateTime(obj.test);
List<Info> myInfo= GameCache.Data(lineDate);
return PartialView("_PartialView", myInfo);
}
Поскольку вы отправляете только один параметр, это излишне - но если у вас больше 2, то стоит использовать JSON POCO.