-4

我正在使用带有 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")
  }
4

1 回答 1

1

您可能不熟悉 SignalR 的工作原理,因为这听起来像是一项家庭作业。如果我弄错了,请原谅我。

首先,请阅读 SignalR 上的 wiki:http ://www.asp.net/signalr 另外,花一点时间阅读 Knockout 上的教程:http ://learn.knockoutjs.com/ 。这将帮助您调整并熟悉这两种技术的工作原理以及它们的能力。

一旦准备好加入,您将需要为 SignalR 设置服务器端集线器。然后,您可以通过 javascript 允许来自客户端浏览器的连接。验证您可以在服务器和客户端之间建立连接和通信,两者都可以正常工作。如果您觉得卡在任何东西上,请浏览 SignalR wiki 和示例项目。

然后,只需分配一个 javascript 函数以供服务器端集线器调用。此功能将更新您的 Knockout 视图模型以添加新任务。

这很简单,但我没有具体的解决方案示例,因为我觉得你还有一些事情要做。祝任务顺利!

于 2013-05-19T22:43:58.323 回答