Comment mettre à jour la valeur d'un textarea (ASP.NET Core, MVC)

0

La question

Pour faire simple:

C'est mon ServiceClass:

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

}

Mon 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();
        }

        
}

J'ai un ServiceClassModel:

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

}

Et j'ai une IndexView avec un 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

Maintenant à ma question: j'ai programmé une application de reconnaissance vocale. Il y a une propriété appelée Demande où mon discours demande est stocké dans le ServiceClass. Je veux à chaque fois lorsque la méthode ExecuteCommand(); est appelé à la mise à jour du textarea dans la vue index. Quelle est la meilleure façon de le faire?

À l'aide de ASP.NET Core, MVC

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

La meilleure réponse

0

Vous obtiendrez une réponse à chaque fois qu'une demande est faite. Mais si le ExecuteCommand() est déclenchée à partir d'un autre service, la Demande actuelle de la valeur ne sera pas poussé vers l'AVANT jusqu'à ce qu'une nouvelle demande est faite.

Si la demande est celle qui déclenche ExecuteCommand, cet exemple pourrait fonctionner: https://dotnetfiddle.net/5mVvb9

Si pas, je vous suggère d'utiliser l'Interrogation Régulière. Avec cette approche, vous pourriez faire periocal demande pour le BACKEND et de vérifier pour la nouvelle Demande de la valeur.

2021-11-23 21:54:52

Bon, je vous remercie pour votre réponse rapide à ma question. Juste pour faire sûr que vous avez de moi: la ExecuteCommand () est appelée quand le mot de la reconnaissance est parlée (comme "Hey Google"), puis la réponse à ma requête est générée. Je veux la réponse et mon discours demande à être affichés dans la zone sans cliquer sur un bouton. Est l'Interrogation Régulière le seul moyen? Si oui pourriez-vous me donner un exemple plus spécifique pour mon code. Merci beaucoup!
DarthYoda

La seule façon de prévenir l'Interrogation Régulière est de faire une Requête POST avec audio d'arrière-plan. Je pense qu'il y aurait un service de traitement de l'audio et de retourner une chaîne de caractères de la réponse que vous souhaitez afficher dans la zone de texte. Si le processus se termine en une seule requête, avant 10 secondes, puis il n'est pas nécessaire de faire un bureau de vote. Sinon, si le processus prend plus de temps ou si vous avez besoin d'un autre processus d'arrière-plan pour travailler l'audio, alors vous aurez besoin d'une stratégie d'interrogation. Dans le premier cas, vous aurez juste besoin de postproduction audio d'arrière-plan et la capture de la chaîne de réponse à remplir textarea.
punteriaCero

Dans d'autres langues

Cette page est dans d'autres langues

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