ajax请求Mootools到asp.net webforms

时间:2011-10-24 04:53:41

标签: asp.net mootools

我正在尝试向服务器发布请求,但是当我使用调试器时它不会命中?

服务器:

 public partial class _Default : System.Web.UI.Page
    {


        public string HitThis()
        {
            return "braza";

        }
    }


 <script type="text/javascript">

        var myRequest = new Request({
            method: 'post',
            url: '/Default.aspx/HitThis',
            onSuccess: function () {
                alert('good');
            },
            onFailure: function () {
                alert('nope');
            }


        });

        myRequest.send();


</script>

2 个答案:

答案 0 :(得分:0)

如果您希望能够调用HitThis方法,则需要使用Web Method属性对该方法进行静态修饰,并在ScriptManager <上启用页面方法/ p>

示例:

 <asp:ScriptManager ID="ScriptManager" runat="server"
       EnablePageMethods="true" />


   [WebMethod]
   public static string HitThis()
   {
       return "Hello World";
   }

答案 1 :(得分:0)

您首先需要了解ASP.NET AJAX脚本服务或PageMethod的工作原理!页面方法必须使用WebMethod属性进行修饰,并且需要是静态的。

[WebMethod]
public static string HitThis()
{
}

请参阅this article,其中说明了使用jquery调用页面方法。你可以用mootools采用它。但请注意,页面方法需要内容类型为JSON数据,响应也将采用JSON格式。

如果您想使用普通表单发布,也许可以使用Request.PathInfo在ASP.NET页面中编写自己的布线逻辑。例如,

protected void Page_Load(object sender, EventArgs e)
{

    if (this.Request.PathInfo == "HitThis")
    {
       HitThis();
    }
}

在您的方法中,您需要使用Response(HttpResponse),并且在修改响应之后,您需要结束它(HttpResponse.End),以便不会发生正常的页面处理。如果您的方法需要参数,则必须通过表单数据和/或查询字符串传递它们。