MVC Ajax正确处理响应

时间:2013-04-27 23:03:51

标签: javascript ajax asp.net-mvc

我正在尝试实现一些Ajax,并遇到了如何处理响应以及如何正确处理数据的问题。

我的JavaScript代码是:

$(function () {
    $('#creatediaryentry').submit(function () {
        if ($(this).valid()) {
            $.ajax({
                url: this.action,
                type: this.method,
                dataType: "json",
                data: $(this).serialize(),
                success: function (result) {
                    $('#diary-entries-list').append("<li>" + result + "</li>");
                }
            });
        }
        return false;
    });
});

这需要一个简单的表单数据并按预期将其发布到控制器方法:

    public JsonResult PostNewEntry(EntryViewModel entry)
    {
        var entryDc = Mapper.Map<EntryViewModel, EntryDc>(entry);

        try
        {
            //_apiClient.SubmitNewEntry(entryDc);
        }
        catch (ApiClientException ex)
        {
            Console.WriteLine(ex);
        }

        return Json(JsonResponseFactory.SuccessResponse());
    }

目前发生的事情是响应被加载到只有SuccessResponse内容的空白页面 - {"Success":true}

我理想的做法就是抓住用户在用户界面中输入的文本,并使用客户端数据更新<li>,而不从控制器发回。

1 个答案:

答案 0 :(得分:1)

尝试阻止默认的提交行为。您可以使用preventDefault方法执行此操作。

$(function(){  
  $('#creatediaryentry').submit(function (e) {
    e.preventDefault();

      //your other ajax posting code goes here

  });
});