我试图使用JavaScript / jQuery函数在单击按钮时调用C#函数。
我经历了类似的问题及其解决方案,但没有一个适合这种情况。我的C#函数不返回任何内容。它是一个从任务计划程序触发作业的功能。有没有其他方法可以编写JavaScript函数,而该函数不返回任何内容?
下面是代码。
HTML:
<button id="btnClick" runat="server" EnablePageMethods="true">Replay</button>
JavaScript:
$(document).ready(function() {
$(".btnClick").on('click', function() {
$.ajax({
async: true,
url: "Home/ABVReplay",
cache: false,
});
console.log("Replayed!");
});
});
C#:
[WebMethod]
public void ABVReplay()
{
using (TaskService tasksrvc = new TaskService("<server.name>", "<username>", "<domain>", "<password>"))
{
Task task = tasksrvc.FindTask("<taskName>");
task.Run();
}
}
如果我仅在控制台应用程序中使用C#代码,则作业运行。因此,没有连接/登录问题。
控制台应用程序代码:
using System;
using Microsoft.Win32.TaskScheduler;
class Program
{
static void Main(string[] args)
{
using (TaskService tasksrvc = new TaskService("<server.name>", "<username>", "<domain>", "<password>"))
{
Task task = tasksrvc.FindTask("<taskName>");
task.Run();
}
}
}
答案 0 :(得分:3)
您的jquery选择器需要更改
$("#btnClick")
代替
$(".btnClick")
并确保您的通话网址正确。
#
选择html标签id
.
选择html标签class
答案 1 :(得分:0)
.
代表jquery class
,而#
代表id
,您必须替换此代码,并且应该可以。
$(document).ready(function () {
$("#btnClick").on('click', function () {
$.ajax({
async: true,
url: "Home/ABVReplay",
cache: false,
});
console.log("Replayed!");
});
});