【发布时间】:2018-04-30 14:48:49
【问题描述】:
我有一个 MVC 项目,它有 2 个按钮和 6 个文本框。我想在集线器上调用不同的方法。
客户:
$(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”,它应该使用不同的参数调用服务器上的交易方法。
服务器:
BitcoinHub(name) 类方法
public void trade(string parametre, Users cUser, string tl, string btc, string total)
{
switch (parametre)
{
case "sell":
// Do something not important here
break;
case "buy":
// Do something not important here
break;
}
}
如果我按下“btnBuy”或“btnCell”,它会通过clickeventhandler。问题是集线器上的方法不会被调用。
【问题讨论】:
-
我不明白我们的最后一节。能改写一下更清楚吗?
-
我有一个 mvc 表单。每个按钮都有 2 个按钮和 3 个文本框。当我按下第一个按钮时,它将获取 3 个文本框的值并发送到服务器端交易方法,它将用于将数据插入数据库。问题:当我按下按钮时。 Js 的 .click 事件同时工作。当我使用断点代码调用第一个 .click 代码块并跳转到其他按钮的 .click 函数时。其他问题:但在此服务器端的交易方法没有调用之后。
-
你也可以添加你的html吗?
-
其他点:您确定连接已启动吗?我会将订阅点击事件的核心移动到 $.connection.hub.start().done(function(){}); });
-
我现在正在尝试,但我真的不知道 SignalR 语法,如果你有时间可以从 github 修复吗? github.com/kadirkalkan/PragmaLinq
标签: asp.net-mvc signalr signalr-hub