Я пытаюсь использовать помощник ASP.NET MVC Ajax.BeginForm, но не хочу использовать существующие параметры вставки содержимого, когда вызов завершается. Вместо этого я хочу использовать пользовательскую функцию JavaScript в качестве обратного вызова.
Это работает, но результат, который я хочу, должен быть возвращен как JSON. К сожалению, структура просто обрабатывает данные как строку. Ниже приведен код клиента. Код сервера просто возвращает JsonResult с одним полем, UppercaseName.
<script type='text/javascript'>
function onTestComplete(content) {
var result = content.get_data();
alert(result.UppercaseName);
}
</script>
<% using (Ajax.BeginForm("JsonTest", new AjaxOptions() {OnComplete = "onTestComplete" })) { %>
<%= Html.TextBox("name") %><br />
<input type="submit" />
<%} %>
Вместо того, чтобы показывать результат в верхнем регистре, вместо него отображается undefined. content.get_data(), похоже, содержит JSON, но только в строковой форме. Как мне преобразовать это в объект?
Все это кажется немного запутанным. Есть ли лучший способ получить полученный контент с помощью Ajax.BeginForm? Если это сложно, я могу полностью пропустить Ajax.BeginForm и просто использовать библиотеку форм jQuery.