通过客户端 jQuery 调用 C# 方法






4.59/5 (17投票s)
这将帮助我们在客户端使用 JQuery 调用后台代码中定义的方法
引言
本文档介绍了如何在代码隐藏文件中定义方法,并从客户端调用该方法。JQuery 使操作变得简单。实现起来非常容易。
背景
过去,我们知道的一种方法是将方法作为 WebMethod 添加,如果想从客户端调用代码隐藏文件中的方法。使用这种方法,我们可以在不将方法作为 WebMethod 调用的情况下实现它。我们不能“直接”从客户端代码调用服务器端代码。原因是出于设计考虑,服务器端代码在服务器端执行,客户端代码在客户端执行。但是有一些解决方法。
Using the Code
在这个例子中,我编写了一个方法,当按下删除键时删除特定的用户。我不想进行回发,所以我希望事件在客户端执行。我在 CS 文件中编写了一个名为 delete
的服务器端方法,并使用 JQuery 从客户端调用它。
创建一个名为 Text.aspx 的页面。现在打开它的 CS 文件,即 Test.aspx.cs 文件,并添加一个 private
方法来删除记录。在这个方法中,ID
和 UserId
参数来自客户端。因此,您可以学习如何从客户端获取参数。
这是我在 CS 文件中名为 DeleteRec
的方法。
private void DeleteRec()
{
int ID= Request.Form["ID"].ToString().ToInteger(); //parameter send
//from clide side
int UserID = Request.Form["UserID "].ToString().ToInteger();//parameter
//send from clide side
UserBO lObjUserBO = new UserBO ();
lObjUserBO .DeleteUser(ID, UserID );
}
一旦定义了该方法,我们需要在页面加载时调用客户端方法。要在页面加载时调用客户端方法,我们使用 Request.Form["MethodName"] == "客户端方法名
”。
这里 DeleteR
是客户端方法名,该方法调用我在服务器端定义的 private
方法。
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
#region Ajax methods
if (Request.Form["MethodName"] == "DeleteR")// same Method Name
// that we are specifying on client side(DeleteR)
{
DeleteRec();// Method defined on the page to delete the record
return;
}
#endregion
}
}
现在来看客户端。我们有一个锚标签,我们希望在单击此锚标签时,服务器端编写的方法被调用,并删除从客户端传递参数的记录。
<a id="adelete">Delete </a>
使用以下脚本在单击此锚标签时调用服务器端方法。这里我的方法名为 DeleteR
,它在服务器端页面加载时被调用。我在此方法中发送两个参数,ID
和 UserID
。
$('#adelete').click(function()
{
var dataToSend={ID:ID,MethodName:'DeleteR',UserID :UserID };
var options =
{
url: '<%=ResolveUrl("~/Test.aspx") %>?x=' +
new Date().getTime(),
data: dataToSend,
dataType: 'JSON',
type: 'POST',
success: function (response) {
window.location.href='<%=ResolveUrl("~/Test1.aspx")%>
/'+ID;//after sucess will redirect to new page
}
}
$.ajax(options);
});
如果代码执行成功,它将重定向到名为 Test1.aspx 的新页面。我们甚至可以添加失败后的操作。
关注点
我的客户不希望在删除后看到页面刷新。我已经创建了许多方法,我只是在寻找一种使用相同方法但从客户端进行调用的方法。这真的帮了我。希望对您也有帮助。