【发布时间】:2021-06-26 06:15:12
【问题描述】:
我使用 blazor 服务器 signalR 开发了一个私人聊天应用程序,我们可以在其中添加朋友并与他们私下聊天。
现在,我想要的是发送表情符号和短信。
我为在输入文本框中获取表情符号所做的是,我已将 Id id="mytext" 输入绑定到 @bind="MsgBody" 并传递给 javascript 函数 SetElemetById(id)。
现在,问题是当在输入中调用 Javascript 函数 SetElemetById(id) 时,按钮单击 @onclick="SendMessage" 时 MsgBody 为空,如果未调用它,那么我们在 MsgBody 中有值,但我们在输入中没有表情符号.
对我的代码的任何帮助或任何想法我如何发送表情符号和文本都会很棒。谢谢
下面是我的剃须刀组件html
<input type="text" name="message" id="mytext" @bind="MsgBody" class="form-control Message-Input">
<button type="button" class="btn btn-primary" @onclick="SendMessage"> Send</button><br><br>
下面是我调用javascript函数的代码
protected override async Task OnInitializedAsync()
{
await iJSRuntime.InvokeVoidAsync("SetElemetById","mytext");
}
下面是我的javascript函数
function SetElemetById(id) {
var getTextBoxId = document.getElementById(id)
$(getTextBoxId).emojioneArea({
pickerPosition: "bottom"
});
};
以下是我从输入中保存消息的代码
public async Task SendMessage()
{
dualMessage.MessageBody = MsgBody; // MsgBody is null
dualMessage.SendOn = DateTime.Now;
mainService.SaveChatMessage(dualMessage);
}
【问题讨论】:
-
@enet 感谢您对我之前的问题的帮助,您能帮我解决当前的问题吗
-
如果您不是所有的 java 脚本,MsgBody 是否也为空?
-
@Danel W MsgBody 在调用 javascript 时为 null,如果未调用 JavaScript,则 MsgBody 中有值
标签: javascript c# asp.net-core signalr blazor