js调用后台非静态方法

如题。asp.net中调用后台非静态方法。... 如题。
asp.net中调用后台非静态方法。
展开
 我来答
趣事情
推荐于2018-05-04 · 知道合伙人互联网行家
趣事情
知道合伙人互联网行家
采纳数:517 获赞数:5452
电脑技术,软件开发。移动开发。网站建设相关专业知识。都可以提供解答和相关技术指导。

向TA提问 私信TA
展开全部
方法一:

1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中;

2、在前台写一个js函数,内容为document.getElementById("btn1").click();
3、在前台或后台调用js函数,激发click事件,等于访问后台c#函数;

方法二:

1、函数声明为public

后台代码

public string methodname() //注意该方法不能为void,否则执行会报错
{

return "";
}

2、在html里用<%=fucntion()%>可以调用

前台脚本

<script language=javascript>
var a = "<%=methodname()%>";

alert(a);

eval("<%=methodname()%>"); //如果只是要执行服务端的一些代码也可以写为如下,这样就可以执行服务端代码了
</script>

方法三:利用PageMethods调用后台代码
实现方法三按照以下步骤:

1.在后台创建方法,必须是static(静态的),方法必须是public类型的,否则访问不到会报异常,
接着要在该方法头部上加上[System.Web.Services.WebMethod],来标注方法特性。

2.在前台页面加入ScriptManager控件,并把其EnablePageMethods属性设为true。
3.调用PageMethods,由于该方法有很多重载

PageMethods.FunctionName(回调的js方法); //其中FunctionName为后台创建的静态方法名,回调js方法为前台接受结果的方法。

PageMethods例子:

后台代码:

一.无参数方法
[System.Web.Services.WebMethod]
public static string ShowValue()
{
return "js调用后台方法";
}

二.有参数方法
[System.Web.Services.WebMethod]
public static string ShowValue2(string msg)
{
return msg;

}

前端代码:

<script type="text/javascript">

//调用后台无参数方法
function bclick()
{
PageMethods.ShowValue(sshow);
}

function sshow(val) //回传方法用val接受后台代码ShowValue的执行结果
{
document.getElementById("show").innerText = val;

}

//调用后台有参数方法
function bclick2()
{
var text = "test";
PageMethods.ShowValue2(text,sshow2);
}

function sshow2(val) //回传方法用val接受后台代码ShowValue的执行结果
{
document.getElementById("show").innerText = val;
}
</script>

<input id="Button1" type="button" value="click" onclick="bclick();" />
<input id="Button2" type="button" value="click2" onclick="bclick2();" />
<div id="show"></div>
youbl
2013-08-30 · TA获得超过2510个赞
知道大有可为答主
回答量:1844
采纳率:62%
帮助的人:1654万
展开全部
通过ajax发起请求就可以了。
做asp.net,第一重要的事情,就是要分清客户端脚本和服务端代码的区别
更多追问追答
追问
能不能详细点,本人新手。
追答

简单的例子,js代码:

$.ajax({
    type: "POST",
    data: "flg=method",
    success: function(daa){
        alert(daa);
    }
});

Asp.net代码:

void Page_Load(){

    if((Request.Form["flg"]??"")=="method"){

        // 调用你的方法

        Response.End();

    }

}

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
abc123ye
2013-08-30 · 超过12用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:43.7万
展开全部
你也可以通过AjaxPro第三方引用 用js调用后台代码
但有几点需要注意 第一首先要到webconfig中配置,第二要在页面注册,第三 你调用的那个方法要标注为AjaxPro.Method 注意了这三点基本上可以在页面调用了
至于具体的实例你到百度搜索AjaxPro的使用就知道了 有很多这样的博客的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式