0

我有以下代码。

ASPX 页面

<a href="AnyASPXPageOfWebsite.aspx" onclick="javascript:CallJQuery();" > Set Price </a>

JS代码

function CallJQuery() {

            var prc = document.getElementById('<%= hdnPrice.ClientID %>');
            var strPrc = prc.value;

            $.ajax({
                type: "POST",
                url: "/Services/TestService.asmx/SetPrice",
                data: {Price : "'"+ strPrc + "'"},
                dataType: "json",

                error: function(xml, status) {
                    alert('Error is ' + status);
                },
                success: function(xml, status) {
                    alert('suceess' + status );
                }

            });
}

TestService.asmx 中的 Web 方法

 [WebMethod(EnableSession = true)]
    public string SetPrice(string Price)
    {
        HttpContext.Current.Session["ProdPrice"] = Price;
        return "success";
    }

我的代码适用于除 SAFARI 之外的所有浏览器,我在 SetPrice() 方法处设置断点,但在 safari 的情况下不执行。还执行成功功能并显示警报消息

safari 没有执行该方法的原因是什么?

4

2 回答 2

0

可能正在使用服务器控制并从代码隐藏调用 CallJQuery() 可以提供帮助。

于 2012-06-20T12:28:50.293 回答
0

我搜索了很多解决方案,应用了许多代码但没有任何效果我得出结论,在 safari 中无法进行以下操作。如果在 asp.net c# 页面中,如果您的标签的 href 属性设置为“任何 aspx 或 html 页面”并且标签具有“onclick”事件,该事件执行一些 JS 函数,然后使用 JQuery 回调执行“Web 方法”。这种情况不起作用,并且在这种情况下不会执行 webmethod,因为 safari 浏览器执行 JS 函数然后导航到页面(在 href 属性中设置),但没有调用 webmethod。

这都是根据我的研究。

于 2012-06-21T05:21:49.103 回答