Я використовую ASP.net pagemethods.Це питання у мене полягає в тому, що воно не працює з певними браузерами. наприклад, IE, Opera Safari та новий Firefox. Це працює з Chrome. Я знайшов це, але не допоміг у моїй справі http://www.carlj.ca/2008/06/18/fixing-firefoxs-ns_error_not_available-error-when-using-pagemethods/ будь-яка допомога буде високо оцінена.
<asp:ScriptManager ID=”scManager″ enablepagemethods=”true” runat=”server” />
<asp:Button ID="btnBuyNow" runat="server" Text="Buy Now" OnClientClick="AddProductToCart()" />
<script type="text/javascript">
function AddProductToCart() {
//hard coded values for testing, productId, quantity
PageMethods.AddProduct(142, 1);
window.location.href = "../Cart.aspx";
}
</script>
[System.Web.Services.WebMethod]
public static void AddProduct(string prodId, string quantity)
{
//adding product to cart
//When testing with Chrome breakpoint is hit,
//All other browsers dont hit break point
CurrentCart.AddProduct(prodId, quantity);
}
Відповіді:
0 для відповіді № 1<script language="javascript" type="text/javascript"> $(document).ready(function() { $("#Save").click(InsertClient); } ); function InsertClient() { var BizName = $("#txtBizName").val(); alert(BizName); $.ajax({ url: "Common.asmx/InsertClient", type: "POST", dataType: "json", data: "{BizName:"" + BizName + ""}", contentType: "application/json; charset=utf-8", success: function(msg) { $("#status").html("Id: "+msg["d"]["Id"]); }, error: function(e) { $("#status").innerHTML = "Unavailable"; } }); } </script> in Common.asmx write webmethod as follow [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public Client InsertClient(string BizName) { Client objClient = new Client(); objClient.BizName = BizName; InsertData(objClient); return objClient; }
0 для відповіді № 2
Це може бути кращим рішенням, але це єдине, що врешті-решт спрацювало.
<script type="text/javascript">
function AddProductToCart() {
//hard coded values for testing, productId, quantity
PageMethods.AddProduct(142, 1);
var millisecondsToWait = 500;
setTimeout(function () {
window.location.href = "../Cart.aspx";
}, millisecondsToWait);
}
</script>