关于EmptyResult的jQuery AJAX请求炸弹

时间:2011-05-25 15:40:10

标签: c# asp.net-mvc-2 jquery

这是similar to this question,但这并没有解决我的问题,因为这正是我处理这个问题的方法。

    $("#code").live("change", function() {           
        var data = { codeId: $(this).find(":selected").attr("id") };

        $.ajax({
            type: "GET",
            url: codeUrl,
            data: data,
            success: function(html) {
               // never gets hit if EmptyResult();
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
               // never gets hit until page navigation, which aborts this call
            }
        });
    });

    [HttpGet]
    public ActionResult CodeParameters(int codeId)
    {
        IList<AdjustmentParameter> parameters = GetCodeParameters(codeId);

        if (parameters == null || !parameters.Any())
            return new EmptyResult();

        return PartialView("EditorTemplates/AdjustmentParameters", parameters);
    }

任何返回HTML的代码都按预期工作,但任何返回new EmptyResult()的代码似乎都会破坏ajax调用。我应该采取不同的做法吗?奇怪的是,这不会发生在3个不同的Web服务器上,只能在面向公众的服务器上进行(自然)。

1 个答案:

答案 0 :(得分:6)

我在Fire Fox中遇到了一个与EmptyResult有关的问题。当我在ajax选项中指定dataType: 'html'时修复了。