1

以前に投稿された jQuery/MVC に関する質問を調べましたが、有効な回答が見つかりませんでした。

次の JavaScript コードがあります。

appCode.runReports = function (e) {

    var reportList = '';

    $('.rptCheck:checked').each(function (index) {
        reportList += ($(this).attr('reportName') + ',');
    });

    $.ajax({
            url: '/Report/RunReports/?reports=' + reportList,
            error: appCode.reportAjaxFailure,
            success: appCode.listRunningReports,
            complete: appCode.ajaxComplete,
            dataType: 'json'
        });

    e.preventDefault();
}

$(document).ready(function () {
    $('#runReportsButton').click(appCode.runReports);
});

呼び出す URL は、次のコントローラーを使用します。

namespace workflowDemoMVC.Controllers
{
    public class ReportController : Controller
    {

        public JsonResult RunReports(string reports = "")
        {
            try
            {
                var ret = reports.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                return Json(ret, JsonRequestBehavior.AllowGet);
            }
            catch (Exception ex)
            {
                ide.Trace.WriteLine(ex.ToString());
                return Json(null, JsonRequestBehavior.AllowGet);
            }
        }

    }
}

dev でコードを実行すると、コントローラー アクションは期待どおりに実行されて返されますが、AJAX 呼び出しで定義されたコールバック (完了、エラー、または成功) は発生しません。以前のコード バージョンでは、500 コードの例外 (Internal Server Error) が表示されましたが、今は何も表示されません。

環境: MVC3、jQuery1.6 .net4

4

1 に答える 1

2

AJAX 呼び出しでコンテンツ タイプを設定してみてください。私はこのような問題を抱えていましたが、それで解決しました。基本的にはこれを行います。これを指定するまで、IE で多くの問題があったことはわかっています。

$.ajax({
        url: '/Report/RunReports/?reports=' + reportList,
        error: appCode.reportAjaxFailure,
        success: appCode.listRunningReports,
        complete: appCode.ajaxComplete,
        dataType: 'json',
        contentType: 'application/json; charset=utf-8'
    });
于 2012-01-06T16:52:11.637 に答える