Textarea değeri nasıl güncelleştirilir (ASP.NET Çekirdek MVC)

0

Soru

Bunu basitleştirmek için:

Bu benim hizmet sınıfım:

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

}

Ev denetleyicim:

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

        
}

Bir serviceclassmodel'im var:

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

}

Ve bir TextArea ile bir IndexView var:

<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

Şimdi soruma geçelim: Bir konuşma tanıma uygulaması programladım. Konuşma isteğimin serviceclass'ta depolandığı Request adlı bir özellik var. Her seferinde yöntemin ne zaman olmasını istiyorum ExecuteCommand(); dizin görünümünde textarea'yı güncellemek için çağrılır. Ne bunu yapmak için en iyi yolu nedir?

Kullanarak ASP.NET Çekirdek MVC

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

En iyi cevabı

0

Bir istek her yapıldığında yanıt alırsınız. Ama eğer ExecuteCommand () başka bir hizmetten tetiklendiğinde, yeni bir istek yapılana kadar geçerli İstek değeri ÖNE itilmez.

Executecommand'ı tetikleyen istek ise, bu örnek işe yarayabilir: https://dotnetfiddle.net/5mVvb9

Değilse, Düzenli Yoklama kullanmanızı öneririm. Bu yaklaşımla, ARKA uca periocal istek yapabilir ve yeni İstek değerini kontrol edebilirsiniz.

2021-11-23 21:54:52

Tamam, teşekkür için senin hızlı cevap için benim sorum. Beni doğru anladığınızdan emin olmak için: tanıma anahtar kelimesi söylendiğinde ("Hey Google" gibi) ExecuteCommand (); çağrılır ve ardından isteğimin cevabı oluşturulur. Yanıtın ve konuşma isteğimin bir düğmeyi tıklatmadan kutuda gösterilmesini istiyorum. Düzenli Yoklama tek yol mu? Evet ise, kodum için bana daha spesifik bir örnek verebilir misiniz? Çok teşekkür ederim!
DarthYoda

Düzenli Yoklamayı önlemenin tek yolu, arka uçta konuşulan sesle POST İsteği yapmaktır. Bu sesi işleyen ve textarea'da gösterilmesini istediğiniz bir dize yanıtı döndüren bir hizmet olacağını düşünüyorum. Tüm işlem 10 saniyeden önce tek bir istekte tamamlanırsa, yoklama yapmaya gerek yoktur. Aksi takdirde, işlem daha fazla zaman alırsa veya sesi çalıştırmak için başka bir arka plan işlemine ihtiyacınız varsa, bir yoklama stratejisine ihtiyacınız olacaktır. İlk durumda, sadece arka uca ses göndermeniz ve textarea'yı doldurmak için dize yanıtını yakalamanız gerekir.
punteriaCero

Diğer dillerde

Bu sayfa diğer dillerde

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