Я пытаюсь вернуть запись из LINQ2SQL как JsonResult для обновления моей страницы просмотра через jquery ajax. Я выложу свой код ниже. Когда я слежу за ним через отладчик, вызывается моя функция в контроллере, которая возвращает запись. Я думаю, что что-то не так с моим JQuery для получения JSONResult. Любые идеи?
Вид:
<a href = "#" onclick = "getProject(<%=project.ID%>)"><img src = "<%=project.ThumbPath%>" alt = "<%=project.Title%>" /></a>
Контроллер:
Function DisplayProjectAjax(ByVal id As Integer) As JsonResult
Dim project = From p In db.Projects Where p.ID = id
Return Json(project)
End Function
JQuery:
<script type = "text/javascript">
function getProject(id) {
$(document).ready(function() {
$.getJSON("/Portfolio/DisplayProjectAjax/" + id,
{},
function(data) {
$("#Title").Text(data.Title);
});
});
}

Пытаться:
$("#Title").text(data.Title);
или же
$("#Title").html(data.Title);
Обратите внимание на корпус ... Также будет полезно что-то вроде Firebug. Вы можете заглянуть на вкладку Сеть и Консоль и увидеть все свои запросы, а также легко отладить свой Javascript.
Результатом вашего запроса является IEnumerable, который, вероятно, сериализован как массив объектов Project, даже если он только один. Мой синтаксис VB, вероятно, плохой, но выберите First () из объектов, выбранных при выборе.
return JsonResult( person.First() );
Думаю, вам также понадобится исправление от @JD Conley.
Я попробую, когда вернусь домой сегодня вечером. Я попытался вернуть JsonResult (person.Single ()), и это не сработало, хотя я обязательно попробую, спасибо!
Я попробовал оба предложения, но он все еще не обновляется. Я также проверил Firebug, и ответ - правильный JSON. Элемент #Title - это <h3>. Есть другие предложения? Спасибо за вашу помощь.