Cum de a actualiza valoarea unui textarea (ASP.NET Core MVC)

0

Problema

Pentru a face simplu:

Acest lucru este meu ServiceClass:

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

}

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

        
}

Am o ServiceClassModel:

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

}

Și am o IndexView cu 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

Acum la întrebarea mea: am programat-o aplicație de recunoaștere a vorbirii. Acolo este o proprietate numita Cerere în cazul în care discursul cerere este stocat în ServiceClass. Vreau de fiecare dată când metoda ExecuteCommand(); este numit pentru a actualiza textarea în modul index. Ceea ce este cel mai bun mod de a face asta?

Folosind ASP.NET Core MVC

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

Cel mai bun răspuns

0

Veți primi un răspuns de fiecare dată când se face o cerere. Dar dacă ExecuteCommand() este declanșat de la un alt serviciu, Cererea curentă valoarea obiceiul de a fi împins în FAȚĂ până la o nouă cerere este făcută.

Dacă cererea este una declanșarea ExecuteCommand, acest exemplu ar putea lucra: https://dotnetfiddle.net/5mVvb9

Dacă nu, îți sugerez să utilizați Regulat de Votare. Cu această abordare, ai putea face periocal cerere la BACKEND și verificați pentru noua Cerere de valoare.

2021-11-23 21:54:52

Bine, vă mulțumesc pentru răspuns rapid la întrebarea mea. Doar să vă asigurați că m-ai dreptate: ExecuteCommand(); este numit atunci când cuvântul cheie de recunoaștere este vorbită (cum ar fi "Hei Google") și apoi răspunsul la cererea mea este generat. Vreau să răspund și discursul cerere pentru a fi afișate în caseta fără a face clic pe un buton. Este Regulat de Votare singura cale? Dacă da, poți să-mi dai un exemplu mai specific pentru codul meu. Vă mulțumesc atât de mult!
DarthYoda

Singura modalitate de a preveni Regulat de Votare este de a face o Cerere POST cu audio vorbit la backend. Cred că ar fi un serviciu de procesare audio și întoarce un șir de caractere ca răspuns doriți să fie afișat în textarea. Dacă întregul proces se încheie într-o singură cerere, înainte de 10 secunde, atunci nu este nevoie pentru a face o votare. În caz contrar, dacă procesul durează mai mult timp sau dacă aveți nevoie de un alt proces de fundal pentru a lucra audio, atunci veți avea nevoie de o strategie de votare. În primul caz, veți avea nevoie doar pentru POST audio pentru backend și de captare de șir de răspuns pentru a umple textarea.
punteriaCero

În alte limbi

Această pagină este în alte limbi

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