Подождите, пока действие контроллера будет вызвано в методе MVC - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь выполнить удаленный процесс, используя C # в ASP.Net MVC, который отправит данные обратно на один из моих контроллеров. Есть ли способ обернуть это действие контроллера в событие в моем вызывающем методе, чтобы я мог ждать данных POST? Я не уверен, какие варианты у меня есть, если таковые имеются. Я надеюсь на что-то вроде:

Способ вызова:

public void MainMethod()
{ 
    ExecuteRemoteProcess();
    //Listen for PostData();
}

Контроллер:

[HttpPost]
public string PostData()
{
    var length = Request.ContentLength;
    Stream req = Request.InputStream;
    req.Seek(0, System.IO.SeekOrigin.Begin);
    string json = new StreamReader(req).ReadToEnd();
    return json;
}

Edit: MainMethod - это отдельный метод класса в приложении MVC, который просто вызывает внешний процесс. Внешний процесс сделал бы свое дело, а затем httppost отправил бы некоторые данные обратно в приложение MVC, используя действие контроллера PostData () ... но в конечном счете мне нужны данные обратно в мой поток MainMethod (), так как он координирует многие из этих небольших внешних процессов.

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Обработка опубликованных результатов должна выполняться в действии PostData, а не в MainMethod. Это запрос, который делается, когда вы хотите выполнить свою работу, поэтому вам нужно написать код для его обработки.

0 голосов
/ 04 января 2019

Если вы хотите, чтобы ваш метод дождался завершения процесса, затем продолжите. Сделайте метод асинхронным.

public async Task<string> PostData()
{
    //Put 'await' infront of the call
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...