从javascript函数调用C#方法背后的代码时出错

从javascript函数调用C#方法背后的代码时出错,javascript,c#-4.0,code-behind,Javascript,C# 4.0,Code Behind,我有以下java脚本函数 <script type="text/javascript"> function taskDone(taskID) { alert(taskID); var btn = document.getElementById('btn-taskDone-' + taskID); var icon = document.getElementById('task-

我有以下java脚本函数

<script type="text/javascript">
          function taskDone(taskID) {

              alert(taskID);

              var btn = document.getElementById('btn-taskDone-' + taskID);
              var icon = document.getElementById('task-icon-' + taskID);

              btn.style.color = '#8F9199';
              btn.onclick = "";
              btn.style.cursor = 'default';
              icon.src = "./../Images/Icons/doneTask.png";                  

              '<%=setDone(123)%>'

          }

</script>
我想从javascript函数调用setDone方法并传递taskID,而不是123, 但我现在不知道该怎么做。我不知道为什么服务器在加载页面时自动运行这行脚本“”,而不调用taskDone“JavaScript”函数

首先,您需要使用
WebMethod
属性对方法进行解包,并使其
为静态的。试试这个:

[WebMethod]
public static Boolean setDone(int taskID)
{
    BO.taskDao myTask = new BO.taskDao();
    Boolean success = myTask.setDone(1, taskID);
    return success;
}
现在,确保您有一个
ScriptManager

<asp:ScriptManager ID="ScriptMgr" runat="server" EnablePageMethods="true"> </asp:ScriptManager>
同时也有成功和失败方法(如上所述):

没什么

首先,您需要使用
WebMethod
属性对方法进行解包,并使其
为静态的。试试这个:

[WebMethod]
public static Boolean setDone(int taskID)
{
    BO.taskDao myTask = new BO.taskDao();
    Boolean success = myTask.setDone(1, taskID);
    return success;
}
现在,确保您有一个
ScriptManager

<asp:ScriptManager ID="ScriptMgr" runat="server" EnablePageMethods="true"> </asp:ScriptManager>
同时也有成功和失败方法(如上所述):


所有服务器内联代码(如
)都是在页面生成过程中执行的,它在JavaScript中的位置仅仅是因为您将它放在了那里

您可以使用内联代码以这种方式将服务器端数据传递给JavaScript


如果希望JavaScript执行服务器端代码,可以使用几种技术。除了mattyTommo描述的WebMethods之外,您还可以在输入框中输入一个值,然后调用按钮单击服务器端按钮,让服务器端代码读取输入框的内容。

所有服务器内联代码(如
)都会在生成页面时执行,它在JavaScript中的位置仅仅是因为你把它放在了那里

您可以使用内联代码以这种方式将服务器端数据传递给JavaScript


如果希望JavaScript执行服务器端代码,可以使用几种技术。除了MattyOMMO描述的WebMethods外,您还可以在输入框中输入一个值,然后调用按钮单击服务器端按钮,让服务器端代码读取输入框的内容。

您更喜欢使用ajax还是回发?您更喜欢使用ajax还是回发?
function onSuccessMethod(success) {
    //query success
}

function onFailMethod() {
    //check failure
}