来自jquery ajax的mvc动作的日期参数始终为null

时间:2013-12-17 09:59:41

标签: asp.net-mvc-3 jquery

我有来自jquery的以下ajax调用代码。

  $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: oAxn.ds,
            data: JSON.stringify(oAxn.p(graphsDrpDwn)),
            beforeSend: function () {
                $(".errorMsg").hide();
                YC.toggleLoadingImg(tabId, false);
            },
            success: function (graphData) {
                if (typeof oAxn.s === "function") {
                    if (graphData.reportData.ErrorMsg !== "Success") {
                        $(".errorMsg").show().html(graphData.reportData.ErrorMsg);
                        $("#tabs").hide();
                        YC.toggleLoadingImg(tabId, true);
                    } else {
                        //Inorder to avoid flicker, we hide in style sheet on page load.
                        $("#tabs").show();
                        $(".lblDrp").show();
                        $("#MainDiv").show();
                        YC.showRangeSel();
                        YC.toggleLoadingImg(tabId, true);
                        oAxn.s(graphData, grphOneID, grphTwoID);
                    }
                }
            },
            error: function (err) {
                YC.toggleLoadingImg(tabId, true);
            }
        });

获取参数JSON.stringify(oAxn.p(graphsDrpDwn))的方法是:

getDealerParams: function (graphsDrpDwn) {
        /// <summary>We gather the parameters required for dealer tab</summary>
        /// <param name="graphsDrpDwn" type="string">Holds the dropdown list id</param>

        return {
            //We get these from hidden inputs, since they won't be available
            //  in the query string for framed in reports
            shopId: $(".txtShopId").val(),
            siteId: $("." + graphsDrpDwn).find(":selected").attr("data-field"),
            dealerId: $("." + graphsDrpDwn).find(":selected").val(),
            frmDate: $(".tsFrom").val(),
            toDate: $(".tsTo").val()
        };
    },

所有参数都获取除frmDate,toDate之外的值。 我可以在客户端看到这些值,但是当传递给控制器​​2时,它们总是为空。 它只发生在我的系统中,它在我的同事机器上运行良好。 有些人可以告诉我这里可能出现什么问题吗?

2 个答案:

答案 0 :(得分:0)

这不是理想的解决方案,但它对我们的几个项目起作用。在Global.asax中,我们输入以下代码:

protected void Application_BeginRequest(Object sender, EventArgs e)
    {
        var newCulture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();
        newCulture.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy";
        newCulture.DateTimeFormat.DateSeparator = "/";
        Thread.CurrentThread.CurrentCulture = newCulture;
    }

当然,您需要将日期格式更改为您需要的格式。

答案 1 :(得分:0)

在页面指令的aspx文件中添加以下属性对我有用。

UICulture =“es”Culture =“es-US”