【发布时间】:2017-07-19 06:45:21
【问题描述】:
我一直在尝试在服务器上运行几个程序代码,其中包含我放在表单上并使用 MVC 控制器执行的参数。我希望控制器上已调用的每一步(方法/函数)都将信息实时更新到客户端 Web。
我一直在尝试使用 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>
这是我的 Hub 类:
namespace SignalR1.Hubs
{
public class MyHub1 : Hub
{
public void Message(string message)
{
Clients.All.messageSend(message);
}
}
}
【问题讨论】:
-
定义“不起作用”
-
@GôTô 我已经在控制器上调试,数据已捕获。但是消息没有显示在网络客户端上
标签: c# asp.net notifications signalr real-time