从JavaScript调用ASP.NET代码隐藏功能

时间:2010-03-26 05:56:18

标签: javascript jquery asp.net

是否可以从JavaScript调用ASP.NET代码隐藏函数。

6 个答案:

答案 0 :(得分:9)

是的,你可以制作像......这样的网络方法。

<WebMethod(EnableSession:=True), ScriptMethod()> _ 
Public Shared Function updateContent() As String
      Return "Your String"
    End Function

然后用javascript调用..

PageMethods.updateTabContent(parameterValueIfAny, onSuccessMethod,onFailMethod);

这也需要添加

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

答案 1 :(得分:9)

我更喜欢Muhammad Akhtar PageMethod方法。只需简短说明:您不需要脚本管理器。 scriptmanager只为您生成javascript代理方法。如果您的页面上已经有JQuery,那么您可以忘记脚本管理器并在页面上写下这样的内容:

<script type ="text/javascript">
    $(document).ready(function() {
        $("#AjaxLink").click(function(e) {
            e.preventDefault();
            $.ajax({
                type: "POST",
                url: "YourPage.aspx/updateContent",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(result) {
                    $("#content").html(result.d);
                }
            });
        });
     });
</script>

这假设您在页面上有ID AjaxLink的链接以及带有显示结果的id内容的div。 好处是你可以通过scriptmanager

在jquery和注入的脚本之间保存30kb的javascript

答案 2 :(得分:3)

cs功能

[System.Web.Services.WebMethod]
public static string set_single_amount(arg a1)
{
     return value;
}

在使用scriptmanager

的脚本cs fucnction调用中
$("#control").click(function()
{
  PageMethods.set_single_amount(value,afercalling)
});

function afercalling(result)
{
alert(result);
}

答案 3 :(得分:1)

不,不可能直接从Javascript调用ASP.NET代码。 ASP.NET代码隐藏在ASP.NET工作进程的上下文中在服务器上执行。 Javascript在客户端浏览器的上下文中在客户端上执行。

Javascript触发ASP.NET代码执行的唯一方法是通过从Javascript到服务器进行AJAX调用。

答案 4 :(得分:0)

您可以使用__doPostBack从javascript进行回发。只需添加一个包含 AutoPostBack 属性的服务器控件,并将其设置为true。

参见 Calling __doPostBack in javascript

答案 5 :(得分:0)

如果您正在处理非Ajax项目,可以尝试使用System.Web.UI.ICallbackEventHandler。

示例:

  

http://msdn.microsoft.com/en-us/library/ms178210.aspx

     

http://www.ajaxmatters.com/2006/05/using-icallbackeventhandler-in-asp-net/