Jquery 如何在客户端方法中调用服务器端方法

Jquery 如何在客户端方法中调用服务器端方法,jquery,asp.net-mvc,Jquery,Asp.net Mvc,我有一个html菜单,当其中的一个项目被点击时,我想调用一个javascript处理程序,在其中我想调用一个服务器端方法,我该怎么做 我将详细讨论: 我有一个文件菜单,当用户单击“创建目录”->时,java脚本处理程序会将该目录(作为节点)添加到树视图中。 在javascript处理程序的末尾,我想调用一个asp.net方法,将该目录添加到数据库中。 编辑2: 我尝试使用JQuery.ajax()访问客户端事件处理程序中的服务器端方法。我的代码如下所示: 控制器 看法 问题是,如果我在contr

我有一个html菜单,当其中的一个项目被点击时,我想调用一个javascript处理程序,在其中我想调用一个服务器端方法,我该怎么做

我将详细讨论: 我有一个文件菜单,当用户单击“创建目录”->时,java脚本处理程序会将该目录(作为节点)添加到树视图中。 在javascript处理程序的末尾,我想调用一个asp.net方法,将该目录添加到数据库中。

编辑2: 我尝试使用JQuery.ajax()访问客户端事件处理程序中的服务器端方法。我的代码如下所示:

控制器

看法


问题是,如果我在controller方法中添加1-7行,“error”方法总是被调用。。如果我将它们注释掉,将调用success方法,为什么?

要在客户端事件上调用服务器端方法,您需要执行以下操作:

1-创建服务器端方法:

void DoSomething(...) { ... }
2-实现System.Web.UI.IPostBackEventHandler接口的RaisePostBackEvent,该接口采用一个字符串参数(您可以以某种方式使用它。):

3-编写脚本以触发回发:

function TriggerPostBack(control, arg){ __doPostBack(control, arg); } 
4-需要时调用回发触发函数:

<asp:Button.... onclick="TriggerPostBack('button', 'btnOk')" .. /> 

创建web方法

[WebMethod]
static string FooBar(string arg) {

}
使用ajax调用WebMethod<代码>$.ajax或
XMLHttpRequest

控制器代码

[HttpPost]
public ActionResult SomeMethod(int param1, string param2) {
    return Json(someobject);
}
带jQuery的javascript

 $.ajax({
    url: "controller/somemethod", // or <%=Url helper method can't remember
    type: "POST",
    dataType: "json",
    data: {param1: 10, param2: "x"},

  complete: function() {
      //called when complete
  },

  success: function(data) {
      // json returned from server
      //called when successful
 },

  error: function() {
      //called when there is an error
  },
});
$.ajax({

url:“controller/somemethod”、//或AJAX。如果您想要更详细的答案,则需要更多详细信息。例如,您正在使用什么服务器端技术。您希望在服务器端执行什么操作。它是否更新UI?您在使用什么?ASP.NET MVC?FubuMVC?MonoRail?考虑到[MVC],我假设不是WebFormstag.Hi Akram。如果可能的话,尽量避免代码标签中的水平滚动。这只会使文章更容易查看。:)我的应用程序无法识别json。我应该添加什么?你的应用程序可以接受json帖子,更多内容请使用asp.net mvc中推荐的方式。你说你正在使用该方式。请检查编辑。我对你建议的代码有问题。试着发回一个字符串开始,也许目录序列化有问题?调试后我发现“directoryName”参数正在作为空值传入!!
[WebMethod]
static string FooBar(string arg) {

}
[HttpPost]
public ActionResult SomeMethod(int param1, string param2) {
    return Json(someobject);
}
 $.ajax({
    url: "controller/somemethod", // or <%=Url helper method can't remember
    type: "POST",
    dataType: "json",
    data: {param1: 10, param2: "x"},

  complete: function() {
      //called when complete
  },

  success: function(data) {
      // json returned from server
      //called when successful
 },

  error: function() {
      //called when there is an error
  },
});