如何从mvc控制器获取ajax数据

时间:2013-04-29 16:59:43

标签: asp.net-mvc jquery

我想从ajax获取控制器中的值。我在控制器中设置了一个断点并且它断开了,但是值不存在。我在代码中遗漏了什么或者我需要更改某些内容吗?

这是我的控制器代码:

            [HttpPost]
    public ActionResult SubmitResponse(string responseData)
    {
        string test = responseData;

        return View();

    }

这是我的ajax代码:

        $( "#dialog-form" ).dialog({
            autoOpen: false,
            height: 500,
            width: 900,
            modal: true,
            buttons: {
                "Submit": function () {

                    var response = $.trim($('#name').val());

                    //responseData = JSON.stringify(responseData);

                    alert('response data = ' + response + '!!!');
                    //alert('YES');
                    $.ajax({
                        url: 'Questions/SubmitResponse',
                        type: 'POST',
                        data: JSON.stringify(response),
                        dataType: 'json',
                        contentType: 'application/json; charset=utf-8',
                        success: function(){
                            alert('success');
                        },
                        error: function(){
                            alert('error buddy');
                        }
                    });
                },

1 个答案:

答案 0 :(得分:4)

您需要使用success回调中的响应数据。

修改

我已经准备好了一个完整的例子,希望能够清除这种混乱。 假设您的客户端代码中包含以下内容:

<button id="testButton" name="testButton">Simulate</button>
<script>
    $(function () {
        var dataToBeSend = {
            test: "This will be appended to the question title !"
        };

        $("#testButton").click(function () {
            $.ajax({
                url: "/Questions/Test",
                type: "post",
                data: JSON.stringify(dataToBeSend),
                dataType: "json",
                contentType: "application/json",
                success: function (question) {
                    alert(question.Title);
                },
                error: function () {
                    alert("Oh noes");
                }
            });
        });
    });
</script>

注意:您可以使用$.post缩短此来电。

QuestionsController

public class QuestionsController : Controller
{
    [HttpPost]
    public JsonResult Test(string test)
    {
        var question = new Question {Title = "What is the Matrix ? " + test};
        return Json(question);
    }
}

// Will be Serializing this class
public class Question
{
    public string Title { get; set; }
}

如果您需要对此进行澄清,请告诉我。