2014-12-03 4 views
0

Я пытаюсь написать код в C#, который извлекает данные из базы данных и передает эти данные в javascript (в пределах цикла по одной записи за раз) для обработки через google map api. Этот javascript возвращает список строк, который я использую для дальнейшей обработки и сохранения в db через C#.Коммуникация между Javascript и C#

До сих пор я понял, что функция javascript просто вызвана один раз, даже если мы напишем ее в цикле. Более того, я даже не знаю, как я верну список строк из javascript и использую это внутри C#.

Я плохо застрял в этом. Можете ли вы предложить хороший и эффективный метод?

Thank you.

Вот код, который я написал, но он не сработал.

foreach (LocationDataPacket d in l) 
      { 

       if (d.cellPhoneGPSData == current_cell) 
       { 
         lat1 = lat2; 
         long1 = long2; 

         lat2 = d.Lat; 
         long2 = d.Long; 
         ScriptManager.RegisterStartupScript(this, GetType(), "check", "check("+d.ID+");", true); 


       } 
       else 
       { 
        lat2 = d.Lat; 
        long2 = d.Long; 
        current_cell = d.cellPhoneGPSData; 
       } 
      } 
+0

Какая версия .NET? Вы достаточно современны для изменений «одного ASP.NET», например, для запуска WebForms («ScriptManager» подразумевает WebForms) в том же веб-приложении, что и Web API и/или SignalR. Последние два оба вполне способны сдвинуть содержимое JSON взад и вперед. – Richard

+0

Я использую 4.5 версию .net. Я видел SignalR, но еще не пробовал. До сих пор я пытался вызвать функцию клиента, но, к сожалению, серверная сторона не ждет клиента и выполняет всю задачу без вызова кода на стороне клиента более одного раза. –

+0

Вся модель WebForms пытается скрыть базовую безгражданность HTTP. Однако для переключения процесса с сервера на клиент и обратно вам придется отменить эту абстракцию. – Richard

ответ

1

I гугле «Доступ к Google Maps API от .net клиента», и это привело меня к Клиенту Google APIs Библиотека для .NET:

https://developers.google.com/api-client-library/dotnet/

Я предполагаю, что это позволит вашей программе .net (возможно, даже не придется запускать на сервере asp.net в зависимости от ваших требований), чтобы стать прямой клиент API карты Google, чтобы вы могли выполнять всю эту обработку локально.

Редактировать: Обращаясь к исходному вопросу, чтобы вернуть данные от клиента на ваш веб-сервер, клиент должен отправить информацию обратно. Этот вопрос, похоже, очень хорошо охватывает: Send javascript variables to server-side ASP .NET. Однако я бы не стал рекомендовать это, основываясь на том, что вы сказали, что хотите выполнить. Сначала я попробую клиентскую библиотеку .NET для API.

0
<script runat="server"> 
foreach (LocationDataPacket d in l) 
{ 
    if (d.cellPhoneGPSData == current_cell) 
    { 
    lat1 = lat2; 
    long1 = long2; 

    lat2 = d.Lat; 
    long2 = d.Long; 
    ScriptManager.RegisterStartupScript(this, GetType(), "check", "check("+d.ID+");", true); 
    } 
    else 
    { 
    lat2 = d.Lat; 
    long2 = d.Long; 
    current_cell = d.cellPhoneGPSData; 
    } 
} 
</script> 

написать этот код в голове тег .. надеюсь, что это поможет и.

+0

Вы хотите сказать, что я должен вставить весь мой код C# в начало моей страницы aspx? Вы уверены, что после этого он будет ждать кода на стороне клиента? Как только я попытался написать код C# внутри кода javascript и весь код C#, выполненный в начале, не дожидаясь завершения javascript –

+0

Я предоставляю ссылку, в которой вы можете использовать все методы обмена сообщениями javascript и C# –

Смежные вопросы