我正在尝试做的事情可能完全错误但我的问题是我发送了一个电子邮件发送课程,这会在电子邮件发送时引发一个事件。
我在我的asp.net项目中使用这个类,现在我想要一些方法在电子邮件发送过程开始时通知用户,当我收到响应事件时我想告诉用户该电子邮件现在已经发送或有异常。
我可以调试asp.net页面,一段时间后我从类中获取事件然后我创建了一个创建JavaScript调用的子项,它应该只是替换页面上div元素的内容。
Private Sub EmailStatus(ByVal status As String)
Page.ClientScript.RegisterStartupScript(Me.GetType(), "WriteEmailStatus", "WriteEmailStatus('" & status & "');", True)
End Sub
JavaScript:
function WriteEmailStatus(status) {
document.getElementById('emailStatusDiv').innerHTML = status;
}
所以debuggin告诉我这个sub在事件之后运行但是div内容保持不变。如果在page_load中运行同一个sub,例如div内容会更改。
有谁知道这里有什么问题?
答案 0 :(得分:1)
如果要从服务器向客户端发送任何内容,则需要按服务器调用客户端。目前,通过长轮询或使用HTML5 WebSockets等变通方法可以实现此方法。但是,如果你尝试从头开始编写代码,你将不得不做很多优化和后退。使用SignalR将为您完成所有这些任务。
在这种情况下使用SignalR。
或者,更简单的方法是使用WebMethod
。因此,通过对此WebMethod进行ajax调用来发送邮件。此外,邮件不应异步发送。如果您不熟悉WebMethod,请参阅this。
答案 1 :(得分:0)
只需使用SignalR即可。我很抱歉这个简短的回答 - 我稍后会对此进行编辑以进行详细说明。