我有一个MVC项目,它有2个按钮和6个文本框。我想在Hub上调用不同的方法。
客户:
X unq_Y
-------------
1 a
1 b
2 c
2 UUID()_result
1 UUID()_result
2 d
在我按“btnBuy”或“btnCell”的情况下,它应该使用不同的参数调用服务器上的交易方法。
服务器:
BitcoinHub(名称)类方法
$(document).ready(function () {
var bitcoinHub = $.connection.bitcoinHub;
$("#btnBuy").click(function () {
var tl = document.getElementById("bitcoinBuy").value;
var btc = document.getElementById("aBitcoin").value;
var total = document.getElementById("aTotal").value;
bitcoinHub.server.trade("buy",@Model.user,tl,btc,total);
});
bitcoinHub.client.broadcastSell = function (model) {
// $("#sellGrid").append("<li>"+model.Sell+"</li>");
};
$("#btnSell").click(function () {
var tl = document.getElementById("bitcoinSell").value;
var btc = document.getElementById("sBitcoin").value;
var total = document.getElementById("sTotal").value;
bitcoinHub.server.trade("sell",@Model.user,tl,btc,total);
});
bitcoinHub.client.broadcastPurchase = function (model) {
// $("#buyGrid").append("<li>"+model.Buy+"</li>");
};
$.connection.hub.start(); });
在我按“btnBuy”或“btnCell”的情况下,它会通过clickeventhandler。问题是不会调用集线器上的方法。
答案 0 :(得分:1)
您不能像JS Model.user那样在JS中使用该模型。有关详细信息,请参阅Accessing MVC's model property from Javascript
其他重新安排您的代码。在建立连接之前,不要在服务器上调用方法:
$(document).ready(function () {
var bitcoinHub = $.connection.bitcoinHub;
bitcoinHub.client.broadcastSell = function (model) {
// $("#sellGrid").append("<li>"+model.Sell+"</li>");
};
bitcoinHub.client.broadcastPurchase = function (model) {
// $("#buyGrid").append("<li>"+model.Buy+"</li>");
};
$.connection.hub.start().done(function(){
// DO not call methods on server until connection is established.
$("#btnBuy").click(function () {
var tl = document.getElementById("bitcoinBuy").value;
var btc = document.getElementById("aBitcoin").value;
var total = document.getElementById("aTotal").value;
bitcoinHub.server.trade("buy",@Model.user,tl,btc,total);
});
$("#btnSell").click(function () {
var tl = document.getElementById("bitcoinSell").value;
var btc = document.getElementById("sBitcoin").value;
var total = document.getElementById("sTotal").value;
bitcoinHub.server.trade("sell",@Model.user,tl,btc,total);
});
}); });