私は、ユーザープッシュ送信ボタンを押した後、同時に4つのテキストボックスを作成しています。 1つの部分では、すべてのユーザーにテキストボックス値を送信していますが、これは機能しています。しかし、特定のユーザーに値を送信しようとすると、ボタンを押した後、すべてのテキストボックスが空になります。SignalRの特定のユーザーに値を送信
これは、すべてのユーザーに値を送信し、働いているコードです:
public void Send(string loanType, string loanAmount, string interestRates, string payment)
{
User sender = GetUser(Context.User.Identity.Name);
var username = sender.Name;
IEnumerable<string> connectionIds = sender.ConnectionIds;
//All connected clients.
Clients.All.broadcastMessage(loanType, loanAmount, interestRates, payment);
}
、これはJSです::
これはハブです
$('#sendmessage').click(function (e) {
sendPayment();
e.preventDefault();
});
function sendPayment() {
var msgValue = $msgTxt.val();
var loanType = $('#txtLoanType').val();
var loanAmount = $('#txtLoanAmount').val();
var interestRates = $('#txtInterestRates').val();
var payment = $('#txtPayment').val();
if (loanType !== null && loanType.length > 0 && loanAmount !== null && loanAmount.length > 0 && interestRates !== null && interestRates.length > 0
&& payment !== null && payment.length > 0) {
if (viewModel.isInPrivateChat()) {
$.connection.hub.start();
chatHub.server.send(msgValue, viewModel.privateChatUser(), $('#txtLoanType option:selected').val(), $('#txtLoanAmount').val(), $('#txtInterestRates').val(), $('#txtPayment').val());
}
else {
// Call the Send method on the hub.
chatHub.server.send($('#txtLoanType option:selected').val(), $('#txtLoanAmount').val(), $('#txtInterestRates').val(), $('#txtPayment').val());
}
}
chatHub.client.broadcastMessage = function (loanType, loanAmount, interestRates, payment) {
$('#txtLoanType').val(loanType);
$('#txtLoanAmount').val(loanAmount);
$('#txtInterestRates').val(interestRates);
$('#txtPayment').val(payment);
};
が、私はしてみてください特定のユーザーに値を送信していません。C#コードがうまく動作しないため、問題がJSにあります。
これは、特定のユーザーにテキストボックスの値を送信するC#のメソッドです:
if (viewModel.isInPrivateChat()) {
$.connection.hub.start();
chatHub.server.send(msgValue, viewModel.privateChatUser(), $('#txtLoanType option:selected').val(), $('#txtLoanAmount').val(), $('#txtInterestRates').val(), $('#txtPayment').val());