我试图检查数据库中是否存在电子邮件地址。我有一个外部JavaScript文件,用于调用我的jQuery(保持视图清洁)。也许是因为我在启用SSL的情况下运行? (我使用HTTPS)外部JavaScript文件中的AJAX调用未到达控制器中的ActionResult
功能的外部js文件:在控制器
function checkemail() {
var email = $("#email").val();
$.ajax({
url: "/Account/CheckEmailExists/",
data: JSON.stringify({ p: email }),
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (data) {
alert(data)
}
});
}
操作:
public ActionResult CheckEmailExists(string p)
{
bool bEmailExists = false;
using (RBotEntities EF = new RBotEntities())
{
var query = (from U in EF.AspNetUsers
where U.Email == p
select U).FirstOrDefault();
if(query.Email != null)
{
bEmailExists = true;
}
else
{
bEmailExists = false;
}
}
return Json(bEmailExists, JsonRequestBehavior.AllowGet);
}
我似乎得到一个错误,说明如下:
XML Parsing Error: no root element found Location: https://localhost:44347/Account/CheckEmailExists/ Line Number 1, Column 1:
我的理解是,这个ActionResult
不存在。但它呢?
我做错了什么,或者有什么理由不能通过外部JavaScript文件调用ActionResult
?
您的控制器正在接收请求,但正在将其作为XML读取。你使用哪个版本的ASP.NET? MVC2在MVC3中没有内置的json支持。 – KarelG
我正在使用MVC 5 – AxleWack