我是新的Asp.net mvc。我試圖寫兩個簡單的tcp應用程序。第一個應用程序是客戶端(Windows窗體),第二個主機(Asp.net mvc)。在第一個應用程序中,我們可以編寫消息併發送給第二個應用程序。 我在第二個應用程序中收到了正確的消息,並在HomeController中設置了屬性消息。 我想每次從第一個應用程序發送它並設置屬性消息時,在消息屬性中的字符串上更改div'messageDiv'。Asp.net mvc更改DIV內容,無需重新加載和無按鈕
下面的代碼顯示瞭如何使用按鈕。每次我們從第一個應用程序消息發送,然後在第二個點擊接收按鈕它正確地更改。
有可能寫間隔會改變消息屬性的div?
Index.cshtml
@{
ViewBag.Title = "Index";
}
<h2>Waiting for messages : </h2>
@using (Ajax.BeginForm(new AjaxOptions()
{
UpdateTargetId = "messageDiv",
HttpMethod = "Post"
}))
{
<input id="btn" type="submit" value="receive"/>
}
<div id="messageDiv"></div>
HomeController.cs
public class HomeController : Controller
{
public static string message { get; set; }
// GET: Home
[HttpGet]
public ActionResult Index()
{
tcpHost host = new tcpHost();
return View();
}
[HttpPost]
public ActionResult Index(string x)
{
return Content(string.Format(message));
}
}
沒錯。就像我之前說過的,我知道如何在HomeController中更改屬性消息,當我們單擊接收按鈕時,它會讀取消息屬性並將其設置爲div內容。我可以每隔2秒寫一個會讀取屬性的時間間隔並替換div內容嗎?我用button和ajax做了這個,現在我想不用按鈕就做到這一點。 – MatLin
當然,你可以但效率不高,因爲會有太多的發送請求到你的服務器,再加上,可能會延遲2秒。試試這個:[link](https://www.w3schools.com/jsref/met_win_setinterval.asp)。我想你有一個函數,檢查是否有新的消息使用AJAX。將該函數名稱作爲第一個參數,將2000(毫秒,1000毫秒= 1秒)作爲第二個參數。我認爲它應該沒有任何修改。 – Spectarion
它的工作原理!現在我將嘗試使用SignalR構建這個應用程序。非常感謝你。 – MatLin