如何通过JavaScript的值,使用Ajax ASPX C#

问题描述 投票:2回答:3

我无法找到一个方法来从一个JavaScript文件传递值,(我从一个onclick事件的html文件了),到aspx.cs文件。

我试着用下面的代码。每一篇文章似乎表明这种方式,但错误不断得到调用,也试过用,而不是“方法”“型”。

.js文件:

//get 'name' variable here
        $.ajax({
                url: 'WebForm.aspx/Send',
                dataType: "json",
                method: 'post',
                contentType: "application/json; charset=utf-8",
                data: { name: name },
                success: msgsuccess,
                error: msgerror
            });

WebForm.aspx.cs文件:

    [WebMethod]
    public static string Send(string name)
    {//breakpoint here
        //code
    }

该代码永远不会在aspx.cs文件断点,因此代码值永远不会被通过。

这是我在堆栈溢出,如果对不起什么是错的格式化的第一篇文章。

javascript c# asp.net ajax parameter-passing
3个回答
1
投票

你需要一个ScriptManager控件添加到页面(或母版公司),并确保该EnablePageMethodsScriptManager属性是true

例如,当在网页或它的主页有一个这样的ScriptManager控制:

<asp:ScriptManager runat="server">
        ...
</asp:ScriptManager>

然后添加EnablePageMethods属性,并将其设置为true:

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

请注意,您不能在ScriptManager控件添加到页面时,它的母版页已经有一个。


此外,您还可以简化从JavaScript调用该方法。你可以简单地使用:

PageMethods.Send(name, msgsuccess, msgerror);

0
投票

[WebMethod]s解析JSON,所以你需要有被当作字符串发送请求数据:

$.ajax({
  url: 'WebForm.aspx/Send',
  dataType: "json",
  method: 'post',
  contentType: "application/json; charset=utf-8",
  data: JSON.stringify({ name: name }), // use JSON.stringify here
  success: msgsuccess,
  error: msgerror
});

一切应正常工作。


0
投票

问题解决了:

经过控制台(用F12)从@TylerRope劝和了错误编号401(未授权)。

随着我的资源,以this post's correct answer和解决错误。如果您知道任何副作用,如果你共享该解决方案可能会导致将不胜感激。

谢谢您的帮助!

© www.soinside.com 2019 - 2024. All rights reserved.