Как отправить модель в $ jQuery .ajax (), сообщение запрашивает к методу контроллера MVC

Необходимо сделать обратное слияние .

42
задан tereško 22 February 2013 в 10:52
поделиться

3 ответа

У меня есть страница MVC, которая отправляет JSON выбранных значений из группы переключателей.

Я использую:

var dataArray = $.makeArray($("input[type=radio]").serializeArray());

Чтобы создать массив их имен и значений. Затем я конвертирую его в JSON с помощью:

var json = $.toJSON(dataArray)

и затем отправляю его с помощью jQuery ajax () на контроллер MVC

$.ajax({
url: "/Rounding.aspx/Round/" + $("#OfferId").val(),
type: 'POST',
dataType: 'html',
data: json, 
contentType: 'application/json; charset=utf-8',
beforeSend: doSubmitBeforeSend,
complete: doSubmitComplete,
success: doSubmitSuccess});

, который отправляет данные как собственные данные JSON.

Затем вы можете захватить поток ответа и де- сериализуйте его в собственный объект C # / VB.net и управляйте им в своем контроллере.

Чтобы автоматизировать этот процесс красивым, не требующим обслуживания способом, я советую прочитать эту запись, в которой подробно описывается большая часть встроенной автоматической десериализации JSON.

Сопоставьте объект JSON с вашей моделью, и связанный ниже процесс должен автоматически десериализовать данные в ваш контроллер. У меня это прекрасно работает.

Статья о десериализации MVC JSON

4
ответ дан 26 November 2019 в 23:41
поделиться

Я думаю, вам нужно явно передать атрибут данных. Один из способов сделать это - использовать data = $ ('# your-form-id'). serialize ();

Этот пост может быть полезным. Сообщение с jquery и ajax

Посмотрите документацию здесь .. Ajax serialize

2
ответ дан 26 November 2019 в 23:41
поделиться

Если вам нужно отправить ПОЛНУЮ модель на контроллер, вам сначала нужно, чтобы модель была доступна для вашего кода javascript.

В нашем приложении мы делаем это с метод расширения:

public static class JsonExtensions
{
    public static string ToJson(this Object obj)
    {
        return new JavaScriptSerializer().Serialize(obj);
    }
}

В представлении мы используем его для визуализации модели:

<script type="javascript">
  var model = <%= Model.ToJson() %>
</script>

Затем вы можете передать переменную модели в свой вызов $ .ajax.

25
ответ дан 26 November 2019 в 23:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: