使用隐藏按钮从JS调用服务器端函数
Calling server side function from JS using hidden button
我需要从javscript函数调用服务器端函数。
据我所知,这是不可能的,因为JS正在客户端上运行,因此只能调用一个静态函数(不在同一上下文中)。
我读过一些关于隐藏按钮方法的文章,即隐藏一个asp服务器端按钮,然后从JS中以编程方式单击它,从而进行回发,然后调用事件处理程序。
关于这种方法的几个问题-
-
这种方法有多好?我的意思是,这种方法是被广泛使用,还是被认为是过时的?
-
这种方法的缺点是什么?
-
我读到的关于这个方法的另一件事是,如果你开始使用这个方法,这意味着整个页面逻辑设计有问题。这在某种程度上是真的吗?有没有更好的方法来处理这个问题?
感谢
您可以通过手动调用__doPostBack javascript函数来手动执行回发。看看另一篇帖子。
一种不错的方法是使用PageMethods。您可以在代码背后声明一个具有属性[WebMethod]
的静态方法。这意味着您可以通过客户端的ajax请求来访问它。像这样:
[WebMethod]
public static string GetDate()
{
return DateTime.Now.ToShortDateString();
}
您必须使用System.Web.Services
才能获得属性。
从客户端,您可以使用jQuery:执行类似的操作
$.ajax({
type: "POST",
url: "YourPage.aspx/GetDate()",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
alert(data.d);
}
});
请注意,ASP.net将向您发送的任何内容添加一个.d
对象。
AFAIK这是在客户端和代码绑定之间进行通信的首选方式,而不会触发回发。发生了什么也很清楚。
使用一个隐藏的按钮并通过调用按钮上的click()
触发回发,这更"神奇",而且根本不清楚发生了什么。__doPostback
也是如此。
相关文章:
- 在Android中从signalR调用服务器端功能
- 从javascript调用服务器端的下拉列表onchange函数
- 如何从jQuery对象文本正确调用服务器端ASP.NET并将数据返回给jQuery
- 如何在 asp.net 中从 javascript 调用服务器端代码
- 如何使用javascript代码调用服务器端函数;标记函数“>
- 如何在 javascript 函数中调用服务器端函数
- 在侧边栏 GAS 中调用服务器端脚本
- 从 js 调用服务器端 vb 代码(asp classic)
- 通过互联网从浏览器调用服务器端javascript
- 想要从Android应用程序调用服务器端javascript
- 调用服务器端从 JavaScript 继承了 C# Web 方法
- 如何先调用客户端脚本函数,然后再调用服务器端按钮单击事件
- 从网页调用服务器端C++
- 如何在 Node.js 中从客户端调用服务器端函数(例如.html单击按钮)
- 在 MVC3 中从客户端调用服务器端函数
- 从javascript asp.net调用服务器端函数
- 使用Javascript调用服务器端函数
- 使用隐藏按钮从JS调用服务器端函数
- 使用AJAX调用服务器端方法
- 如何在不调用服务器端的情况下从JqGrid导出数据到excel