/ / 0x800a138f - Erreur d'exécution JavaScript: impossible d'obtenir la propriété 'PaymentHub' de référence non définie ou nulle - asp.net, signalr

0x800a138f - Erreur d'exécution JavaScript: impossible d'obtenir la propriété 'PaymentHub' d'une référence non définie ou nulle - asp.net, signalr

Je suis un débutant sérieux dans ASP.NET SignalR et j'ai essayé de développer une application simple en l'utilisant qui montre les modifications apportées à la base de données en temps réel.

J'obtiens l'erreur suivante lorsque j'essaie d'exécuter l'application:

Exception non gérée à la ligne 52, colonne 13 dans http://localhost:57702/ 0x800a138f - Erreur d'exécution JavaScript: impossible d'obtenir la propriété "PaymentHub" de référence non définie ou nulle

Voici mon 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>

Mon hub ressemble à ceci:

    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();
}
}
}

Réponses:

0 pour la réponse № 1

var job = $.connection.PaymentHub; devrait être var job = $.connection.paymentHub; sans capital. Par défaut, sur la partie JS de SignalR, les choses seront camelées.

J'espère que cela t'aides. Bonne chance!