是否可以从 JavaScript 调用 ASP.NET 代码隐藏函数。
从 JavaScript 调用 ASP.NET 代码隐藏函数
IT技术
javascript
jquery
asp.net
2021-02-23 11:38:26
6个回答
是的,您可以制作网络方法,例如..
<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>
我更喜欢 Muhammad Akhtar PageMethod 方法。只是一个简短的说明:您不需要脚本管理器。脚本管理器只为您生成 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。好处是,与 jquery 和脚本管理器注入的脚本相比,您可以节省 30kb javascript
cs函数
[System.Web.Services.WebMethod]
public static string set_single_amount(arg a1)
{
return value;
}
在脚本 cs 功能调用中使用 scriptmanager
$("#control").click(function()
{
PageMethods.set_single_amount(value,afercalling)
});
function afercalling(result)
{
alert(result);
}
不,不能直接从 Javascript 调用函数背后的 ASP.NET 代码。后面的 ASP.NET 代码在 ASP.NET 工作进程的上下文中在服务器上执行。Javascript 在客户端浏览器的上下文中在客户端上执行。
Javascript 可以触发后台执行 ASP.NET 代码的唯一方法是通过从 Javascript 到服务器进行 AJAX 调用。
您可以利用__doPostBack
来从 javascript 进行回发。只需添加一个具有AutoPostBack属性的服务器控件并将其设置为 true。
其它你可能感兴趣的问题