我需要创建一个 WebMethod ,它在JSON上返回我的成员数据库值。我尝试了类似的东西,但实际上失败了。
[WebMethod(EnableSession = false)]
public static UYELER handleAjaxRequest(string mailX, string passwordX)
{
DataSet dsX = ReadSql("select top 3 * from fuyeler ");
for (int i = 0; i < dsX.Tables[0].Rows.Count; i++)
{
mailX = dsX.Tables[0].Rows[i]["stMail"].ToString();
passwordX = dsX.Tables[0].Rows[i]["stPass"].ToString();
}
return new UYELER
{
mail = mailX,
password = passwordX,
};
}
public class UYELER
{
public int ID { get; set; }
public string mail { get; set; }
public string password { get; set; }
}
Readsql是我的快速SQL连接类。
答案 0 :(得分:0)
将其添加到Global.asax页面中的Application_Start
:
protected void Application_Start()
{
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.UseDataContractJsonSerializer = true;
//....
}
您还可以使用ResponseFormat set JSON
来装饰您的方法[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod(EnableSession = false)]
public static UYELER handleAjaxRequest(string mailX, string passwordX)
{
DataSet dsX = ReadSql("select top 3 * from fuyeler ");
for (int i = 0; i < dsX.Tables[0].Rows.Count; i++)
{
mailX = dsX.Tables[0].Rows[i]["stMail"].ToString();
passwordX = dsX.Tables[0].Rows[i]["stPass"].ToString();
}
return new UYELER
{
mail = mailX,
password = passwordX,
};
}
答案 1 :(得分:0)
您可以通过清除Page_Load中的正常输出并返回自己的输出,从Asp.Net方法返回Json。见this StackOverflow answer ...
要将C#对象转换为JSON,您可以使用Json.NET等库。