【发布时间】:2014-10-16 15:04:58
【问题描述】:
场景:
我有一个 ASP WebAPI 服务,它接受 email id 来检索以前的密码。
但是我有一个问题,如果我输入了一个有效的email Id "Internal server error 500",但如果输入了错误的email Id,则会返回带有错误消息的Json。
(如果输入了无效的emailid,那么我有一个返回错误消息的Json)
所以请任何人指导该怎么做。
var urll = 'api/BeerAppRetrieve';
// var urll = 'api/BeerApp';
var emailId = "anirudh1190@gmail.com";
//$.getJSON(urll + '/' + data)
$.getJSON(urll, { "emailId": emailId })
.done(function (data) {
})
.fail(function (jqXHR, textStatus, err) {
alert("error" + jqXHR.responseText);
$('#txtUserName').text('Error: ' + err);
});
我的 json 调用.. 如果电子邮件 ID 也有效,我希望该方法被击中.. 请帮忙...
config.Routes.MapHttpRoute(
name: "DefaultApi1",
routeTemplate: "api/{controller}/{emailId}",
defaults: new { emailId = RouteParameter.Optional }
);
我的路线配置。
[EnableCors("*", "*", "GET, POST")]
public IHttpActionResult GetForgotPassword(String emailId)
{
MailMessage MyMailMessage = new MailMessage();
MyMailMessage.From = new MailAddress("beersavo@gmail.com");
MyMailMessage.To.Add(emailId);
MyMailMessage.Subject = "Forgot Password";
MyMailMessage.IsBodyHtml = true;
BeerAppUserClass beerAppDal = new BeerAppUserClass();
String passwrd = String.Empty;
try
{
passwrd = beerAppDal.GetUserPassword(emailId);
}
catch (Exception exw)
{
return Json(new KeyValuePair<String, String>("MailSend", exw.InnerException.Message));
}
if (!passwrd.Equals(String.Empty))
{
MyMailMessage.Body = "<table><tr><td>" + "Login to the site with:</td></tr> <tr><td> UserName: </td><td>" + emailId + "</td></tr> <tr><td> Password:</td><td>" + passwrd + "</td></tr></table>";
SmtpClient SMTPServer = new SmtpClient("smtp.gmail.com");
SMTPServer.Port = 587;
//SMTPServer.Host = "smtpout.secureserver.net";
SMTPServer.Credentials = new System.Net.NetworkCredential("email@gmail.com", "Password@321");
SMTPServer.EnableSsl = true;
try
{
SMTPServer.Send(MyMailMessage);
return Json(new KeyValuePair<String, String>("MailSend", "true"));
}
catch (Exception ex)
{
return Json(newKeyValuePair<String,String("MailSend",ex.InnerException.Message));
}
}
return Json(new KeyValuePair<String, String>("MailSend", "empty"));
}
}
控制器中的动作
【问题讨论】:
-
你试过调试服务端代码吗?
-
Internal Server Error... 首先发布服务器代码 -
让我们看看你的 WebApi 控制器/方法/动作。大多数人混淆了 MVC 和 WebApi 路由
-
内部服务器错误是关于服务器端错误。所以你必须向我们展示你的服务器端代码。
-
请显示 //我的代码 ...
标签: c# javascript .net json asp.net-web-api