0

我正在尝试实现一些 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}

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

4

1 回答 1

1

尝试阻止默认提交行为。你可以使用preventDefault方法来做到这一点。

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

      //your other ajax posting code goes here

  });
});
于 2013-04-27T23:08:41.247 回答