使用 Javascript 函数将数据传输到 C# webservice 并在 json 中获取返回失败
Posted
技术标签:
【中文标题】使用 Javascript 函数将数据传输到 C# webservice 并在 json 中获取返回失败【英文标题】:Using Javascript function to transmit data to C# webservice and get return in json failed 【发布时间】:2019-12-12 04:14:11 【问题描述】:1- 我已经使用 javascript 函数从 html 表单中收集了登录名和密码
2- 然后使用javascript函数调用C# webmethod将登录名和密码发送到服务器
3- 服务器收集数据并返回一个 json 对象 但是当我尝试显示返回 json 的结果时,没有任何事情发生。无值返回。
请帮忙
这是客户端的javascript代码和HTML代码
<script>
function OnRequestComplete(result, userContext, methodName)
var Person = eval(`enter code here`'(' + result + ')');
alert(Person.Login);
alert(Person.Password);
function OnRequestError(error, userContext, methodName)
if (error != null)
alert(error.get_message());
function SubmitData()
var Login = document.getElementById("Login").value;
var Password = document.getElementById("Password").value;
PageMethods.GetData(Login, Password, OnRequestComplete, OnRequestError);
</script>
这是服务器端的代码
public partial class login : System.Web.UI.Page
private static string SerializeObjectIntoJson(Person p)
DataContractJsonSerializer serializer = new DataContractJsonSerializer(p.GetType());
using (MemoryStream ms = new MemoryStream())
serializer.WriteObject(ms, p);
ms.Flush();
byte[] bytes = ms.GetBuffer();
string jsonString = Encoding.UTF8.GetString(bytes, 0, bytes.Length).Trim('\0');
return jsonString;
[WebMethod]
public static string GetData(string loginParam, string passwordParam)
Person p = new Person();
p.Password = passwordParam;
p.Login = loginParam;
// throw new Exception("Custom Error :) ");
return SerializeObjectIntoJson(p);
人物类
public class Person
string loginParam = string.Empty;
string passwordParam = string.Empty;
public string Password
get return passwordParam;
set passwordParam = value;
public string Login
get return loginParam;
set loginParam = value;
【问题讨论】:
这可能会有所帮助:***.com/questions/6928533/… 【参考方案1】:首先,请格式化底部?很难读。
我的猜测是SerializeObjectIntoJson()
出了点问题,如果你想将一个类对象转换为 JSON,微软建议使用Json.NET,那么它会执行以下操作:
private static string SerializeObjectIntoJson(Person p)
return JsonConvert.SerializeObject(p);
您可以使用 Nuget 包管理器将 Json.net 添加到您的项目中。
【讨论】:
【参考方案2】:Web 服务 GetData 正确地以这种形式返回 seriablize 对象。
"Login":"aaaaadd","Password":"ccc".
我可以捕获这个字符串。但是当调用javascript函数OnRequestComplete在客户端取回这个结果时,当我调用函数时我无法获取任何数据
function OnRequestComplete(result, userContext, methodName)
var Person = eval('(' + result + ')');
alert(Person.Login);
alert(Person.Password);
【讨论】:
以上是关于使用 Javascript 函数将数据传输到 C# webservice 并在 json 中获取返回失败的主要内容,如果未能解决你的问题,请参考以下文章
如何将 C# 对象作为参数传递给 Javascript 函数
如何使用asp.net c#将HTML格式的电子邮件正文传递给javascript函数
使用ajax将javascript数组发送到代码后面(c#)