2012-01-26 56 views
0

我想使用signalR javascript從mvc剃鬚刀形式插入數據到數據庫。任何人都有一些很好的建議,如何正確使用?第一次與SignalR合作。 這是我有的代碼,我需要在@RenderBody()行下面輸入SignalR js代碼。SignalR javascript在mvc剃刀應用程序

<!DOCTYPE html> 

<script src="~/Scripts/jquery-1.6.4.min.js" type="text/javascript"></script> 
<script src="~/Scripts/jquery.signalR.min.js" type="text/javascript"></script> 
<script src="Scripts/knockout-2.0.0.js" type="text/javascript"></script> 
<script src="Scripts/json2.min.js" type="text/javascript"></script> 

<html lang="en"> 
    <head> 
     <meta charset="utf-8" /> 
     <title>My ASP.NET Web Page - @Page.Title</title> 
     <link href="@Href("~/Styles/Site.css")" rel="stylesheet" /> 
     <link href="@Href("~/favicon.ico")" rel="shortcut icon" type="image/x-icon" /> 
    </head> 
    <body> 
     <div id="page"> 
      <div id="header"> 
       <p class="site-title">My ASP.NET Web Page</p> 
       <div id="login"> 
        @if (WebSecurity.IsAuthenticated) 
        { 
         <p> 
          Welcome <a href="@Href("~/Account/ChangePassword")" title="Change password">@WebSecurity.CurrentUserName</a>! 
          <a href="@Href("~/Account/Logout")">Logout</a> 
         </p> 
        } 
        else 
        { 
         <ul> 
          <li><a href="@Href("~/Account/Register")">Register</a></li> 
          <li><a href="@Href("~/Account/Login")">Login</a></li> 
         </ul> 
        } 
       </div> 
       <ul id="menu"> 
        <li><a href="@Href("~/")">Home</a></li> 
        <li><a href="@Href("~/About")">About</a></li> 
       </ul> 
      </div> 
      <div id="main"> 
       <div id="content"> 
        <h1>@Page.Title</h1> 
        @RenderBody() 
        <script type="text/javascript"> 
        $(function() { 
        var test = $.connection.SignalRHub(); 
        </script> 
       </div> 
       <div id="footer"> 
        &copy; @DateTime.Now.Year - My ASP.NET Web Page 
       </div> 
      </div> 
     </div> 
    </body> 
</html> 

另外我有類,我想輸入代碼插入數據在數據庫中。我需要使用集線器,我認爲這是做到這一點的正確方法,但任何更有經驗的人與SignalR更歡迎給我建議。

下面是代碼:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using SignalR.Hubs; 

/// <summary> 
/// Summary description for SignalRHub 
/// </summary> 
namespace SignalR 
{ 
public class SignalRHub : Hub 
{ 
    public SignalRHub(string message) 
    { 
     string test = ""; 
    } 
    public void InsertData(string value) 
    { 

    } 
    public void DeleteData(int id) 
    { 
    } 
} 
} 

由於提前,Laziale

+0

我會假設上面的代碼不起作用(出於幾個原因) - 你問如何解決它? –

回答

1

我會通過閱讀這篇文章開始:

http://www.dotnetcurry.com/ShowArticle.aspx?ID=780

這將引導您如何設置SignalR並在ASP.NET MVC3中使用它。該文章還包括填充源,所以你可以通過它來挖掘。這裏是鏈接到代碼:

www.dotnetcurry.com/Uploads/mvc/MultiEditWithSignalR.zip

祝您好運!

2

你錯過了集線器的包含。你可以在這裏閱讀更多https://github.com/SignalR/SignalR/wiki/QuickStart-Hubs

+0

看來我沒有該文件夾,「/ signalr/hubs」在我的根目錄中。無論如何我需要包括嗎?感謝您幫助我 – Laziale

+0

查看有關如何使用mvc執行此操作的常見問題解答: https://github.com/SignalR/SignalR/wiki/Faq – davidfowl

+0

/signalr/hubs是一條虛擬路徑。它神奇地使用它的巫術掛鉤一個httpmodule某處,並且我認爲這響應了對/ signalr/hubs的呼叫。檢查的一個好方法是運行你的項目並在瀏覽器中輸入/ signalr/hubs。它應該呈現一些JavaScript到屏幕上。如果你看到JavaScript,你知道它的工作,你可以添加引用罰款。 – spaceman

0

我猜你缺少的JavaScript包括集線器。

<script src="/signalr/hubs"></script> 

爲此,您必須爲集線器添加路由。

public static void RegisterRoutes(RouteCollection routes) 
    { 
     RouteTable.Routes.MapHubs(); 

.... 

我不知道你是否有SignalR繼續努力,但它是defintely傳達給之間,並從你的客戶的一個好方法。