Я пытаюсь использовать помощник Ajax.BeginForm ASP.NET MVC, но не хочу использовать существующие параметры вставки содержимого после завершения вызова. Вместо этого я хочу использовать пользовательскую функцию 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" />
<%} %>
Вместо того, чтобы показывать результат в верхнем регистре, он показывает неопределенный. content.get_data (), кажется, содержит JSON, но только в строковой форме. Как мне преобразовать это в объект?
Все это кажется немного запутанным на самом деле. Есть ли лучший способ получить конечный контент с помощью Ajax.BeginForm? Если это сложно, я могу полностью пропустить Ajax.BeginForm и просто использовать библиотеку форм jQuery.