asp.net mvc 3 значения json не получаются на контроллере - PullRequest
0 голосов
/ 22 марта 2011

проблема в том, что я не могу получить какое-либо значение в контроллере. что может быть не так? код здесь.

  $('#save').click(function () {

        var UserLoginViewModel = { UserName: $('vcr_UserName').val(),
            Password: $('vcr_Password').val()
        };
        $.ajax({
            url: "/User/Login",
            data: JSON.stringify(UserLoginViewModel),
            contenttype: "application/json; charset=utf-8",
            success: function (mydata) {
                $("#message").html("Login");
            },
            error: function () {
                $("#message").html("error");
            },
            type: "POST",
            datatype: "json"
        });
        return false;
    });
});

    [HttpPost]
    public ActionResult Login(UserLoginViewModel UserLoginViewModel)
    {

    }

Ответы [ 2 ]

3 голосов
/ 22 марта 2011

Поскольку вы используете MVC3 - вы должны иметь возможность воспользоваться встроенной привязкой модели JSON.

В вашем примере кода есть несколько опечаток: contentType и dataType в нижнем регистре ... (они должны иметь заглавную букву "T")

jQuery ajax docs

После того, как вы POST вернете правильный contentType / dataType, MVC должен автоматически привязать ваш объект к опубликованному JSON.

1 голос
/ 22 марта 2011

Вам понадобится фильтр действий или подобное для перехвата json из тела сообщения.

Вот стартер

Фабрика провайдеров

но вот статья, которая отсортировала это для меня На взломанном

Хорошо, если вы знаете тип, который вы десериализуете, но если вам нужен полиморфизм, вы в конечном итоге будете использовать эти идеи в фильтре действий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...