使用从.js文件到.cs文件的变量

问题描述 投票:0回答:1

我使用Visual Code C#编程,我正在SignalR中创建聊天应用程序,我想将消息存储在MongoDB中的数据库中。我需要帮助,该如何使用Pogram.cs中chat.js文件中的“消息”和“用户”变量?

chat.js

"use strict";

var connection = new signalR.HubConnectionBuilder().withUrl("/chatHub").build();

//Disable send button until connection is established
document.getElementById("sendButton").disabled = true;

connection.on("ReceiveMessage", function (user, message) {
    var msg = message.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
    var encodedMsg = user + ": " + msg;
    var li = document.createElement("li");
    li.textContent = encodedMsg;
    document.getElementById("messagesList").appendChild(li);
});

connection.start().then(function () {
    document.getElementById("sendButton").disabled = false;
}).catch(function (err) {
    return console.error(err.toString());
});

document.getElementById("sendButton").addEventListener("click", function (event) {
    var user = document.getElementById("userInput").value;
    var message = document.getElementById("messageInput").value;
    connection.invoke("SendMessage", user, message).catch(function (err) {
        return console.error(err.toString());
    });
    event.preventDefault();
});

Program.cs

namespace bcwebchat
{

    public class Message{
    public DateTime Sent;
    public string Msg;
}


public class Program
    {
        public static void Main(string[] args)
        {

            var client = new MongoClient("mongodb://localhost:27017");

            var db = client.GetDatabase("DemoInsert");

            var collec = db.GetCollection<Message>("DemoInsert");

            collec.InsertOne(new Message
            {
                Sent = DateTime.Now,
                Msg = "blaaahahaah"
            });

我想在这里使用用户和消息:

collec.InsertOne(new Message 
{
    Sent = DateTime.Now,
    Msg = "blaaahahaah"
});
javascript c# database mongodb variables
1个回答
0
投票

仅遵循本节Microsoft SignalR首先,您应该创建一个ASP.NET Web应用程序然后,创建一个ChatHub并插入消息,它应该可以工作

public class ChatHub : Hub
{
    public async Task SendMessage(string user, string message)
    {
            // insert your message to database
            collec.InsertOne(new Message 
            {
                Sent = DateTime.Now,
                Msg = message
            });
            await Clients.All.SendAsync("ReceiveMessage", user, message);
    }
}
public void ConfigureServices(IServiceCollection services)
{
     services.AddRazorPages();
     services.AddSignalR();
}
 public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
 {
      //some code here

      app.UseEndpoints(endpoints =>
      {
          endpoints.MapRazorPages();
         endpoints.MapHub<ChatHub>("/chatHub");
      });
}
© www.soinside.com 2019 - 2024. All rights reserved.