【发布时间】:2013-09-06 07:49:27
【问题描述】:
新手问题,试图找出是否已发送电子邮件并显示结果,似乎无法正常工作。
function SendPreview() {
var value = CKEDITOR.instances['Source'].getData();
alert(value);
var model = { EmailBody: value.toString(), EmailTo: $("#SendTo").val(), EmailSubject: $("#Subject").val() };
var request = $.ajax({
url: '/Campaign/SendPreviewEmail',
async: false,
type: 'POST',
dataType: 'JSON',
data: { model: JSON.stringify(model) },
cache: false,
success: function (data) {
if (data) {
alert("Message Sent");
} else {
alert("Message Not Sent, Please check details");
}
}
});
}
[HttpPost]
[ValidateInput(false)]
public bool SendPreviewEmail(string model)
{
var e = new EmailPreview();
JavaScriptSerializer objJavascript = new JavaScriptSerializer();
e = objJavascript.Deserialize<EmailPreview>(model);
if (!string.IsNullOrEmpty(e.EmailTo) && !string.IsNullOrEmpty(e.EmailSubject) && !string.IsNullOrEmpty(e.EmailBody))
{
if (IsValidEmail(e.EmailTo))
{
_mailService.SendMail(account.Email, e.EmailTo, e.EmailSubject, e.EmailBody, true);
return true;
}
}
return false;
}
【问题讨论】:
-
这将始终执行此(数据)检查。您可能想使用
xhr.responseText == "something"之类的东西来检查条件。 -
此时代码会发生什么?
-
不要使用
async: false。 如果您的服务器无法响应,它将锁定浏览器 - 不仅仅是网页,而是整个浏览器及其菜单和一切。在某些浏览器中,它会锁定每个浏览器窗口,而不仅仅是您的页面所在的那个。不要这样做。相反,以适当的方式处理 ajax 调用的异步特性,在回调函数中采取任何需要的操作。 -
抱歉,问题是我需要返回 bool 然后显示正确的信息
标签: jquery asp.net-mvc