我在mvc api
中创建了一个返回字符串的方法。但是,我想返回string
而不是返回Json Object
。这是我的代码。
[AllowAnonymous]
[HttpPost]
[Route("resetpassword")]
public IHttpActionResult ResetPassword(string email)
{
CreateUserAppService();
string newPassword =_userAppService.ResetPassword(email);
string subject = "Reset password";
string body = @"We have processed your request for password reset.<br/><br/>";
string from = ConfigurationManager.AppSettings[Common.Constants.FromEmailDisplayNameKey];
body = string.Format(body, newPassword, from);
SendEmail(email, subject, body, string.Empty);
return Ok<string>(newPassword);
}
此处返回Ok<string>(newPassword);
现在我想返回Json object
。如何返回 Json对象?
答案 0 :(得分:11)
试试:
[AllowAnonymous]
[HttpPost]
[Route("resetpassword")]
public IHttpActionResult ResetPassword(string email)
{
//...
return Json(newPassword);
}
答案 1 :(得分:7)
你实际上已经在使用关键的东西......
[HttpGet]
public IHttpActionResult Test()
{
return Ok(new {Password = "1234"});
}
答案 2 :(得分:5)
您需要将其作为CLR对象返回,以便Web API将其序列化为JSON,您可以创建自己的POCO类或者这样做:
var passResponse = new
{
newPassword= yourNewPassword
};
但从安全的角度来看,你正在做的事情是不正确的,你应该从不通过电子邮件发送普通密码,你应该重置用户密码,为他们提供一个重置电子邮件链接到你的门户网站,并带有一些令牌和他们应该输入新密码。你在这里做的事情并不安全。
答案 3 :(得分:1)
创建一个返回对象。
public class PasswordResponse{
public string Password {get;set;}
//...other stuff to pass...
}
然后在您的回复中返回该类型的实例。
return OK(new PasswordResponse(){Password = newPassword});