我正在使用带有Razor视图模型的ASP.NET MVC 4。我想用Knockout实现SignalR。这是我的代码目前正在完美运作。
我要求在创建任务时应该为所有客户端显示,并且还应该在不同的视图上显示客户端消息。
@model TaskManager.Models.TaskList
@{
ViewBag.Title = "Create";
}
<h2>Create</h2>
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>TaskList</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Taskname)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Taskname)
@Html.ValidationMessageFor(model => model.Taskname)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Taskdesc)
</div>
<div class="editor-field">
@Html.TextAreaFor(model => model.Taskdesc)
@Html.ValidationMessageFor(model => model.Taskdesc)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
答案 0 :(得分:1)
您可能不熟悉SignalR的工作原理,因为这听起来像是家庭作业。如果我弄错了,请原谅我。
首先,请阅读SignalR上的维基:http://www.asp.net/signalr 另外,花一点时间浏览Knockout上的教程:http://learn.knockoutjs.com/。这将帮助您调整和熟悉两种技术的工作方式和能力。
准备好进入后,您需要为SignalR设置服务器端集线器。然后,您可以通过javascript允许来自客户端浏览器的连接。验证您是否可以建立连接,并且服务器和客户端之间的通信都很有效。如果您觉得卡在任何事情上,请浏览SignalR wiki和示例项目。
然后,只需指定一个javascript函数即可由服务器端集线器调用。此函数将更新您的Knockout视图模型以添加新任务。
这很简单,但我没有具体的解决方案示例,因为我觉得你有一些赶上来做。祝你好运!