【发布时间】:2016-01-07 10:32:06
【问题描述】:
“HomeController.cs” - 这是我的控制器类。 "ForgotPassword" - 这是上面类中的动作结果方法。
[HttpPost]
public ActionResult ForgotPassword(string EmailID)
{
SendMail(EmailID);
return View();
}
在 SendMail() 函数中,我正在向传递的 EmailID 发送验证链接。 我通过 jQuery Ajax 方法调用此方法,如下所示:
$('#btnSubmit').click(function (e) {
var emailRegex = new RegExp(/^([\w\.\-]+)@@([\w\-]+)((\.(\w){2,3})+)$/i);
//var emailRegex = new RegExp(/^([\w-\.]+)@@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/);
var emailAddress = $("#txtEmail").val();
//alert(emailAddress);
var valid = emailRegex.test(emailAddress);
if (!valid) {
alert("Please Enter Valid Email address");
return false;
} else {
alert(emailAddress);
//return true;
$.ajax({
url: '@Url.Content("~/Home/ForgotPassword")',
async: false,
type: "POST",
data: JSON.stringify({ 'EmailID': emailAddress }),
dataType: "json",
contentType: "application/json; charset=utf-8",
error: function (response) {
alert("Error");
alert(JSON.stringify(response));
//$("#errMsg").css('background', 'red');
//$("#errMsg").html(data.Message);
},
success: function (response) {
//$("#errMsg").css('background', 'green');
//$("#errMsg").html("Mail Sent");
alert(JSON.stringify(response));
}
});
}
});
这是我的观点:
<input type="text" name="EmailID" id="txtEmail" width="600" />
<input type="submit" name="btnSubmit" id="btnSubmit" value="Send" />
我在点击“btnSubmit”按钮时调用这个方法。
一切正常。 SendMail() 函数被调用并且邮件也被发送到传递的mailid。但我在 jQuery Ajax 中遇到错误。
error: function (response) {
alert("Error");
alert(JSON.stringify(response));
//$("#errMsg").css('background', 'red');
//$("#errMsg").html(data.Message);
},
我想在视图中显示成功消息。但是出现错误。实际上是什么问题?如何解决?
【问题讨论】:
-
您指定了
dataType: "json",,但您返回的html(需要是部分视图,而不是视图),因此您需要将其更改为dataType: "html",(或省略它)。你也可以省略contentType: "application/json; charset=utf-8",,直接使用data: { EmailID: emailAddress }, -
@StephenMuecke:谢谢..您的建议有效..
标签: jquery asp.net json ajax asp.net-mvc-4