Как ждать и получить возвращаемое значение из ViewModel с помощью Caliburn Micro ActivateItem - PullRequest
0 голосов
/ 20 сентября 2019

Я разрабатываю настольное приложение, которое может взаимодействовать с браузером.Я хочу отправить параметр из браузера в приложение для настольного компьютера, чтобы выполнить какой-то процесс, а затем получить возвращаемое значение как значение

В приложении я использую Nancy для получения данных POST из браузера.Затем я передаю данные в SignHashViewModel в качестве параметра, чтобы выполнить какой-то процесс, но не могу получить значение из SignHashViewModel.

Я пытаюсь узнать async и await, чтобы увидетьесли это может решить проблему, но я не знаю, как применить это к моему коду.

Приведенный ниже код Javascript отправляет строковый хэш на сервер Nancy и возвращает результат:

Signhash.php

<?php

  if (isset($_GET['hashStr'])) 
  {
    $hashStr = $_GET['hashStr']; // get param from URL
  }
?>

<script type="text/javascript">

    $(document).ready(function() {

        var hash = JSON.stringify("<?php echo $hashStr ?>");

        $.post("http://localhost:50011/MyProject/signHash", {hash}, function(data) //this line will post hash to nancy server and get the data as result
        {
            var result = JSON.parse(data);
            console.log("ErrCode : " + result.ErrCode );
            console.log("ErrMsg : " + result.ErrMsg );
            console.log("CertData : " + result.CertData );
        });
    }); 
</script>    

вполучить данные POST из JavaScript, который я использовал этот класс.

ServerModule.cs

Post ("/signHash", (args) =>
{
  string result = null;
  List<string> dataItem= new List<string>();

  ActivateItems.OpenItem(new SignHashViewModel(dataItem)); //This line activate the screen with param

  return result; // Here I dont know how to get return value from SignHashViewModel
});

Этот класс будет подписывать хэш

SignHashViewModel.cs

public SignHashViewModel(List<string> dataItem)
{
   DataItem = dataItem; // Set as Property
}

public PDFInfo Sign() //Run this method when button is clicked
{
   PDFInfo pi = new PDFInfo();
   SignHashToken jsonData = new SignHashToken();

   pi = jsonData.SignHash(DataItem , userPin); //

   return result;
}

Я ожидал, что смогу получить результат SignHashViewModel и перейти в браузер.Надеюсь, что кто-то может помочь мне в этом или предложит какое-то другое решение, было бы здорово, спасибо.

...