gpt4 book ai didi

用于触发 C# 方法的 Javascript 事件处理程序

转载 作者:行者123 更新时间:2023-11-28 07:16:32 27 4
gpt4 key购买 nike

我一直在开发的一个 .NET 应用程序卡在某个函数调用上。我想知道是否有一种方法可以让事件处理程序“触发”C# 函数,而不是调用它并等待返回;换句话说,我需要它继续运行 Javascript 代码而不是等待。我如何实现这个功能?

这里是代码概要:

Javascript

// Fires on user scroll event
function ScrollHandler() {
//...
// Calls the following C# function when a user scrolls
window.external.UserScroll();
}

// Called by C# function UpLoadJson()
function drawTimeline(JsonData) {
//...
}

C#

// Called by Javascript function ScrollHandler()
void UserScroll()
{
//...
UpLoadJson();
}

void UpLoadJson()
{
//...
browser.Document.InvokeScript("drawTimeline", new String[] {data});
}

使用“->”表示函数调用,我认为发生的情况是:

ScrollHandler(/*JS*/) -> UserScroll(/*C#*/) -> UpLoadJson(/*C#*/) -> drawTimeline(/*JS*/)

但是 Javascript 无法运行 drawTimeline(),因为它正在等待 ScrollHandler() 首先返回;不过,在调用 drawTimeline() 之前,它无法返回。我需要 ScrollHandler() 返回,而无需等待 UserScroll() 返回。

@fabjan 代码:

    $(document).ready(function() {
$.ajax({
url: window.external.HandleScroll(left, right),
type: "GET"
})
// seems like this part would be optional, since calling HandleScroll() will
// result in the draw function if it needs to
/*.done(function (jsondata) {
drawTimeline(jsondata);
})*/
.fail(function (err) {
alert(err.statusText);
});
});

最佳答案

尝试使用JQuery Ajax get/post请求和回调方法:

$.ajax({
url: (your controller/actionname),
type: "GET",
}).done(function (jsondata) {
some code here...
}).fail(function (err) {
alert(err.statusText);
});

关于用于触发 C# 方法的 Javascript 事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30782228/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com