在JS Ajax调用CodeBehind静态函数后动态更新标记

时间:2016-01-18 19:58:29

标签: c# jquery asp.net ajax

我正在使用$.ajax({...});将一些数据发送到我的服务器(c#中的aspx的CodeBehind文件)。为了在CodeBehind文件中接收要使用的数据,我必须使用静态WebMethod([System.Web.Services.WebMethod])。一旦我使用这些数据,我想要将它们重定向到新页面如果成功(在我的情况下,成功的信用卡收费),否则,向用户发送一个警告出现问题(即信用卡)卡随机收费不起作用。)

有没有办法通过这个静态WebMethod访问/更改当前页面的标记(例如,添加<script>alert("Something went wrong")</script>),而无法使用asp页面控件? (即this,它是CodeBehind文件中非静态方法中的页面)

1 个答案:

答案 0 :(得分:3)

您可能需要使用$ .ajax语法的成功和失败部分。请参考下面的示例。我希望你的web方法返回字符串以使其工作。

示例WebMeethod

[ScriptMethod()]
    [WebMethod]
    public static string YourWebMethod()
    {
        String yourMessageString = String.Empty;

        //process as per your logic
       yourMessageString = "Some Message";

       return yourMessageString;
    }


$.ajax({
            type: "POST",
            url: "/yourpage.aspx/yourwebmethod",
            async: false,
            contentType: "application/json; charset=utf-8",
            data: "your data",
            dataType: "json",
            success: function (message) {
                alert(message);
            },
            error: function () {
                alert("error");
            },
            failure: function () {
                alert('failure');
            }
        });