从返回bool并返回浏览器的方法获取计数器值int

时间:2018-04-16 20:31:04

标签: c# jquery asp.net-mvc

我试图找出如何在foreach循环中的方法中获取计数器的值。

我考虑过代表,但我无法弄清楚如何做到这一点。

我的方法是删除所有不敬的代码

public static bool ReadExcelFile(string str1, int Id, out int tCount)
{
    int primaryCounter = 0;                    

    //Insert new items
    foreach (var item in excelList)
    {                
        primaryCounter++;                                
    }

    return true;
}                

然后我有一个ActionResults,我用它来进行jquery轮询

public ActionResult InsertPolling()
{
    int currentCount = //How to get value of counter        
    string pollingMessage = $"Inserted {currentCount}  items";
    return Json(pollingMessage, JsonRequestBehavior.AllowGet);
}

我的jQuery是:

function doPollHandler(event) {
    $.post('/UploadData/InsertPolling',
        function(data) {
            alert(data); // process results here
            setTimeout(window.doPollHandler, 2000);
        });
};

$('#fileUpload').change(function () {
    doPollHandler();
});

我看过https://www.tutorialspoint.com/csharp/csharp_delegates.htm

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/delegates/using-delegates

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/delegates/how-to-declare-instantiate-and-use-a-delegate

但是当我的方法返回一个bool时,我需要得到计数器的值,我就不知道如何做到这一点。

1 个答案:

答案 0 :(得分:0)

希望这有助于您了解使用委托的回调

namespace ConsoleApplication1
{
    class Program
    {

        public delegate void Del(int message);
        static void Main(string[] args)
        {
            Del handler = DelegateMethod;
            MethodWithCallback(handler);
        }

        public static void MethodWithCallback(Del callback)
        {
            for (int i = 0; i < 50; i++)
            {
                callback(i);

            }
        }
        public static void DelegateMethod(int primaryCounter)
        {
            System.Console.WriteLine(primaryCounter);
        }
    }
}