我一直在嘗試運行幾個程序代碼在服務器上的參數,我把形式和MVC控制器執行。我希望控制器上每一步(方法/功能)都被調用,將信息更新到客戶端Web實時。從控制器實時C#SignalR推送通知不工作
我一直在嘗試使用SignalR來更新實時推送通知/信息到客戶端,它與客戶端觸發器的工作,但是當我試圖從控制器調用集線器時它的工作。
這裏是我的控制器代碼:
[HttpPost]
public string data (Models.ExModel data)
{
var hub = GlobalHost.ConnectionManager.GetHubContext<Hubs.MyHub1>();
//Execute Code
//send to client
hub.Clients.All.Message(data.apaAja);
return "success";
}
這裏是我的客戶端代碼:
<h2>Index</h2>
@Ajax.BeginForm("data", "Home", FormMethod.Post, null) {
<div class="input-group">
<span>Apa Aja</span>
@Html.EditorFor(model => model.apaAja, new { htmlhtmlAttributes = new { @id = "apaAja" } })
</div>
<div class="input-group">
<span> Boleh </span>
@Html.EditorFor(model => model.boleh, new { htmlhtmlAttributes = new { @id = "boleh" } })
</div>
<button id="subm" type="submit">Submit</button>
<div id="container">
</div>
@section scripts{
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="~/Scripts/jquery.signalR-2.2.1.min.js"></script>
<script src="~/signalr/hubs"></script>
<script>
$(document).ready(function() {
var c = $.connection.myHub1;
c.client.messageSend = function (message) {
var encodedMsg = $('<div />').text(message).html();
// Add the message to the page.
$('#container').append('<li> <strong>' + 'Info Message : ' +
'</strong >: ' + encodedMsg + '</li >');
};
$.connection.hub.start();
});
</script>
,這裏是我的樞紐類別:
namespace SignalR1.Hubs
{
public class MyHub1 : Hub
{
public void Message(string message)
{
Clients.All.messageSend(message);
}
}
}
定義「不起作用」 –
@GôTô我已經調試控制器,捕獲的數據。但消息沒有顯示在web客戶端 –