Javascript事件处理程序来解雇C#方法

时间:2015-06-11 13:30:25

标签: javascript c# asp.net

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

以下是代码大纲:

的Javascript

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

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

C#

->

使用“ScrollHandler(/*JS*/) -> UserScroll(/*C#*/) -> UpLoadJson(/*C#*/) -> drawTimeline(/*JS*/)”表示函数调用,我认为正在发生的事情是:

drawTimeline()

但是Javascript无法运行ScrollHandler(),因为它正在等待drawTimeline()先返回;但是,在调用ScrollHandler()之前,这不会返回。我需要UserScroll()才能返回,而无需等待 $(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); }); }); 返回。

@fabjan代码:

$messages = $this->Message->find('all', array(
    'conditions' => array('Message.status'=> 'progress'),
    'ORDER' => 'MessageDetail.created_date ASC'

));

1 个答案:

答案 0 :(得分:0)

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

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