Como atualizar o valor de um textarea (ASP.NET Núcleo MVC)

0

Pergunta

Para fazer é simples:

Esta é a minha classe de serviço:

public class ServiceClass
{
        public string Request {get; set;}
        //other logic
        
        private void ExecuteCommand()
        {
            Request = "Some Text";
        }

}

Meu HomeController:

public class HomeController : Controller
{

        private readonly ILogger<HomeController> _logger;

        [BindProperty]
        public ServiceClassModel ServiceClass { get; set; }

        public HomeController(ILogger<HomeController> logger)
        {
            _logger = logger;
        }

        public IActionResult Index()
        {
            return View();
        }

        public IActionResult Privacy()
        {

            return View();
        }

        
}

Eu tenho um ServiceClassModel:

public class ServiceClassModel
{
    public string Request { get; set; }
    public string Response { get; set; }
    
    public ServiceClass Logic { get; set; }

}

E eu tenho uma IndexView com um TextArea:

<textarea id="story" name="story"
              rows="9" cols="80" style="margin-left: 10px; resize: none; margin-top: 10px">Here I want to update the text

Agora a minha pergunta: eu programei um aplicativo de reconhecimento de voz. Há uma propriedade chamada de Pedido de onde o meu discurso pedido é armazenado na classe de serviço. Eu quero a cada momento em que o método ExecuteCommand(); é chamado para atualizar a área de texto na visualização de índice. Qual é a melhor forma de o fazer?

Usando ASP.NET Núcleo MVC

asp.net-core c# html javascript
2021-11-23 21:08:21
1

Melhor resposta

0

Você vai ter uma resposta de cada vez que um pedido é feito. Mas se o ExecuteCommand() é disparada a partir de outro serviço, o atual valor Pedido não vai ser empurrado para a FRENTE, até que um novo pedido é feito.

Se o pedido é o desencadeamento de ExecuteCommand, este exemplo poderia funcionar: https://dotnetfiddle.net/5mVvb9

Se não, eu sugiro que você use a Sondagem Regular. Com essa abordagem, você pode fazer periocal pedido para o servidor e verificar se o novo Pedido do valor.

2021-11-23 21:54:52

Ok, obrigado pela sua rápida resposta para a minha pergunta. Apenas certifique-se de que você me tem direito: a ExecuteCommand(); é chamado quando a palavra-chave de reconhecimento é falado (como "Hey Google") e, em seguida, a resposta para o meu pedido é gerado. Eu quero a resposta e a minha voz pedido para ser mostrado na caixa sem clicar de um botão. É a Sondagem Regular a única maneira? Se sim, você poderia me dar um exemplo mais específico para o meu código. Muito obrigado!
DarthYoda

A única maneira de impedir a Regular a pesquisa é fazer uma Solicitação POST com o áudio falado, para o back-end. Eu acho que não seria um serviço que o processamento não de áudio e retornar uma cadeia de caracteres de resposta que você deseja ser mostrado no textarea. Se todo o processo é concluído em um único pedido, antes de 10 segundos, então não há nenhuma necessidade de fazer uma pesquisa. Caso contrário, se o processo leva mais tempo ou se você precisar de outro processo de plano de fundo para trabalhar o áudio e, em seguida, você vai precisar de uma estratégia de sondagem. No primeiro caso, você vai precisar apenas de POSTAGEM de áudio para o back-end e de captura de resposta em cadeia de caracteres para preencher textarea.
punteriaCero

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................