Я начинаю изучать ASP.Net MVC (кандидат на выпуск), и у меня небольшие проблемы. Я мог бы просто быть разборчивым, но я думал, что спрошу.ASP.Net MVC Ajax вызов, который возвращает JsonResult
Я хочу использовать встроенные (расширенные) ASP.Net методы Ajax для вызова моего контроллера под названием «GetNames», который возвращает объект JsonResult. Я видел примеры, которые используют метод $ .getJSON() JQuery, но я бы вместо этого предпочитают делать что-то вроде этого:
<%using (Ajax.BeginForm("GetNames", new AjaxOptions() { OnSuccess = "GetNamesSuccess", OnBegin = "GetNamesBegin", OnComplete = "GetNamesComplte", OnFailure = "GetNamesFailure" })) { %>
<%=Html.TextBox("DummyData") %>
<input type=submit />
<% } %>
<script type="text/javascript">
function GetNamesSuccess()
{
alert("Success");
}
function GetNamesBegin()
{
alert("Begin");
}
function GetNamesComplete()
{
alert("Complete");
}
function GetNamesFailure()
{
alert("Failure");
}
</script>
При нажатии на кнопку Submit, я не получаю ни один из предупреждений, и я получите запрос на загрузку файла, содержащего текст объекта Json, который, по моему мнению, указывает, что по крайней мере метод контроллера работает нормально. Но для меня это не намеренное поведение ... В идеале Ajax.BeginForm настроил бы его так, чтобы объект Json передавался либо методу OnSuccess, либо OnComplete.
Есть ли способ сделать это?
Похоже, вы правы! Я предположил, что методы помощника Ajax, которые я использовал, автоматически добавят в ответ любые необходимые файлы javascript. Doh! Благодарю. – Moskie