Итак, у меня проблема с моим Json Call на контроллер. Im получаю ошибку "parseerror - Неожиданный маркер <"Json request parseerror - неожиданный токен <MVC3
мой код выглядит следующим образом, на мой взгляд:
$("select[name='SelectedProjectStatus']").change(function() {
var DashboardModel = {
SelectedProjectStatus: $("select[name='SelectedProjectStatus']").val(),
Page: 1
};
$.ajax({
url: '@Url.Action("Dashboard", "Dashboard")',
type: 'POST',
data: JSON.stringify(DashboardModel),
dataType: 'json',
contentType: 'application/json; charset=utf-8',
success: function (data) {
$('#DashboardResult').replaceWith(data);
},
error: function (request, status, err) {
alert(status);
alert(err);
}
});
});
и в моем контроллере:
[HttpPost]
public ActionResult Dashboard(DashboardModel dashboard)
{
var MyProjects = EFProject.Project.Where(x => x.UserID == 1);
if (dashboard.SelectedProjectStatus != 0)
MyProjects = MyProjects
.Where(x => x.Status == dashboard.SelectedProjectStatus)
.OrderByDescending(p => p.AuditingCD)
.Skip((dashboard.Page - 1) * PageSize)
.Take(PageSize);
else
MyProjects = MyProjects
.OrderByDescending(p => p.AuditingCD)
.Skip((dashboard.Page - 1) * PageSize)
.Take(PageSize);
DashboardModel model = new DashboardModel
{
Projects = MyProjects,
PagingInfo = new PagingInfo
{
CurrentPage = dashboard.Page,
ItemsPerPage = PageSize,
TotalItems = EFProject.Project.Where(x => x.UserID == 1).Count()
}
};
if (Request.IsAjaxRequest())
{
return PartialView("DashboardResult", model);
}
else
{
return View(model);
}
}
Частичный вид им пытаются оказывает только следующее:
@using BidThatProject.Web.Models.NonReusableModels.ProjectManagment
@model DashboardModel
<div id="DashboardResult">
</div>
и родительский вид, очевидно, имеет div с одинаковыми идентификаторами. Он должен работать, по крайней мере, показывая во мне пустое пространство, но похоже, что у него проблема с анализом данных обратно в представление. Может быть, это не чтение его как типа application/json? Я действительно понятия не имею,.
Ну, я после этой страницы, например, HTTP: // WWW. infinitedreamers.co.uk/mvc3-ajax-search-tutorial/ и кажется, что мне нужно вернуть частичный вид, если я не хочу рисовать весь html в js. –
не оскорбительно для издателя, но я имею дело только с json и ajax за 70% работы, которую я делаю, и что этот блог/учебник отправляет вам вниз по crazzzzzyyyy дороге. вы можете использовать шаблоны jquery, если вы беспокоитесь о обработке данных, просто создайте html-страницу с маркерами $ name $ и т. д. и используйте шаблон для json-данных, то есть блог переписан на часы меньше работы – davethecoder
Хм, ну, хотя это не лучший способ создать страницу поиска с ajax, ее все еще странно, что я получаю эту ошибку, потому что она отлично работает для меня в другом представлении. Тем не менее, на данный момент, я думаю, я мог бы попробовать что-нибудь еще, что помогло мне не рисовать весь контент в js, поскольку реальный контент, который я не опубликовал (я разместил частичный вид пустым), немного сложнее (многие C# foreach's). –