ASP.Net MVC динамический текст в представлении не обновляет страницу - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь создать веб-страницу с использованием MVC, которая динамически изменяется на основе httprequests, полученных из приложения c #. Приложение c # отправляет на веб-страницу httpPost, который получает действие Index контроллера MVC.

httpPost, отправленный приложением c #:

HttpClient _SendClient = new HttpClient();
var pairs = new List<KeyValuePair<string, string>>
            {
                new KeyValuePair<string, string>("Packet", "none")
            };
            HttpContent content = new FormUrlEncodedContent(pairs);
            HttpResponseMessage result = await _SendClient.PostAsync("http://localhost:53056", content);

вот контроллер MVC: HomeController.cs

namespace WebApplication2.Controllers
{
   public class HomeController : Controller
   {
      public ActionResult Index()
      { 

         string[] keys = Request.Form.AllKeys;
         if (keys.Length > 0) //received packet
         {
            ViewBag.PacketText = keys[0];
         }
         else
         {
            ViewBag.PacketText = "none";
         }
         return View();
      }
   }
}

и представление: Index.cshtml

@{
   ViewBag.Title = "Home Page";
}

@{
   string packet = ViewBag.PacketText;
}

<div>
     <h3 id="packetDisplay">@packet</h3>
</div>

Когда веб-страница запускается, на странице отображается «нет», как и должно быть. когда приложение c # запускается и запрос httpPost отправляется на веб-страницу, действие Index получает его и изменяет ViewBag.PacketText. Я отладил представление в VS, и переменная пакета изменяется на «Пакет», но веб-страница в браузере все еще читает «нет» и никогда не изменяется. Что мне нужно сделать, чтобы обновить веб-страницу при изменении PacketText?

1 Ответ

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

Вы должны увидеть, что переменная пакета изменена на «Пакет» в ответе, отправленном вашему приложению C # . Чтобы увидеть изменения в браузере, вам нужно отправить запрос POST из самого браузера.

Добавить следующее на странице cshtml (примечание: я не проверял, могут быть ошибки):

<form action="" method="post">
    <input name="Packet" type="hidden" value="Something">
    <input type="submit" value="Submit">
</form>

При нажатии на кнопку «Отправить» вы должны увидеть «Что-то», а не ничего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...