「HomeController.cs」 - 這是我的控制器類。 「ForgotPassword」 - 這是上述類中的動作結果方法。jQuery Ajax調用返回錯誤:ASP.NET MVC
[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);
},
我想在視圖中顯示成功的消息。但是會出錯。究竟是什麼問題?如何解決這個問題?
您指定'數據類型:「JSON」,'但你返回HTML頁面(這需要一個局部視圖,而不是一個視圖),所以你需要將其更改爲'數據類型: 「html」,「(或者只是省略它)。您也可以省略'contentType:「application/json; charset = utf-8」,'並使用'data:{EmailID:emailAddress},' –
@StephenMuecke:謝謝..您的建議有效.. – thevan