/ / 0x800a138f - Błąd czasu wykonania JavaScript: Nie można uzyskać właściwości „PaymentHub” niezdefiniowanego lub zerowego odwołania - asp.net, signalr

0x800a138f - Błąd środowiska wykonawczego JavaScript: Nie można uzyskać właściwości "PaymentHub" niezdefiniowanej lub zerowej referencji - asp.net, signalr

Jestem poważnym nowicjuszem w ASP.NET SignalR i staram się stworzyć prostą aplikację, która pokazuje zmiany w bazie danych w czasie rzeczywistym.

Podczas próby uruchomienia aplikacji pojawia się następujący błąd:

Nieobsługiwany wyjątek w wierszu 52, kolumna 13 w http://localhost:57702/ 0x800a138f - Błąd czasu wykonania JavaScript: Nie można uzyskać właściwości „PaymentHub” niezdefiniowanego lub zerowego odniesienia

To jest mój javascript:

@{
ViewBag.Title = "Status";
}

<h2>Status</h2>

<!DOCTYPE html>

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>PaymentStatus</title>
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/bundles/jquery")
<script src="~/Scripts/jquery.signalR-2.0.0.min.js"></script>
<script src="~/signalr/hubs" type="text/javascript"></script>
<script type="text/javascript">

$(function () {

// Proxy created on the fly
var job = $.connection.PaymentHub;

// Declare a function on the job hub so the server can invoke it
job.client.displayStatus = function () {
getData();
};

// Start the connection
$.connection.hub.start();
getData();
});

function getData() {
var $tbl = $("#tblPaymentInfo");
$.ajax({
url: "../api/values",
type: "GET",
datatype: "json",
success: function (data) {
if (data.length > 0) {
$tbl.empty();
$tbl.append(" <tr><th>ID</th><th>Payment_ID</th><th>Payment_Received</th><th>Payment_Pending</th></tr>");
var rows = [];
for (var i = 0; i < data.length; i++) {
rows.push(" <tr><td>" + data[i].Payment_ID + "</td><td>" + data[i].Payment_Received + "</td><td>" + data[i].Payment_Pending + "</td><td>");
}
$tbl.append(rows.join(""));
}
}
});
}
</script>
</head>
<body>
<div>
<table id="tblPaymentInfo" style="text-align:center;margin-left:10px"></table>
</div>
</body>
</html>

Moje centrum wygląda następująco:

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

namespace WebDatabaseUpdateSignalR
{
public class PaymentHub : Hub
{
public static void Show()
{
IHubContext context =       GlobalHost.ConnectionManager.GetHubContext<PaymentHub>();
context.Clients.All.displayStatus();
}
}
}

Odpowiedzi:

0 dla odpowiedzi № 1

var job = $.connection.PaymentHub; powinno być var job = $.connection.paymentHub; bez kapitału. Domyślnie w części JS SignalR sprawy będą miały obudowę wielbłąda.

Mam nadzieję że to pomoże. Powodzenia!