将Javascript中的值返回到C#HTML文件

时间:2014-11-28 14:28:53

标签: javascript razor

这是我的问题,我在.js文件中有一个javascript函数,它执行一些操作,收集信息并使用回调。回调函数也是一个javascript函数,但驻留在.cshtml文件中。我很难将我的.js javascript函数中的值返回到我的.cshml javascript回调函数。

这是一个小样本代码......

我的.js函数,我想从中返回一个值:

function returnVal(itemID, onCompleteCallback) {
//get vals from DB
onCompleteCallback();
}

调用上一个函数的.cshtml脚本,我需要获取返回值,即使按下按钮:

updateBtn.onclick = function(e) {
if(action==1) {
    returnVal(itemID, OnCompleted);
}

我尝试了两种方法,但都没有效果。我试过在" returnVal"中返回一个值。功能似乎不会导致返回任何内容。我也试过将变量作为类型var传递并在returnVal函数中设置它,我理解原语是通过值传递的(因此这不会起作用)但是对象是通过引用传递的,所以我想这个会工作。无论如何,两者都没有成功。贝娄是我如何尝试上述两种方法的例子:

方法1:

function returnVal(itemID, onCompleteCallback) {
//get vals from DB
onCompleteCallback();
return x;
}

updateBtn.onclick = function(e) {
    if(action==1) {
        x = returnVal(itemID, OnCompleted);
    }
}

方法2:

   function returnVal(x, itemID, onCompleteCallback) {
    //get vals from DB
    onCompleteCallback();
    }

updateBtn.onclick = function(e) {
    if(action==1) {
        var x;
        returnVal(x, itemID, OnCompleted);
    }
}

在这两种情况下' x'没有设定。我希望我提供了足够的细节,非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我想你想要像

这样的东西
function returnVal(itemId, onComplete){
    var data = getValueFromDatabase();
    onComplete(data);
}

updateBtn.onclick = function(e) {
    if(action==1) {
        returnVal(itemID, function(data){
            // Do something with returned value i.e. 'data'
        });
    }
}