- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 ASP.net Web 服务中,如果不指定上述内容,默认的响应格式是什么?另外,如果我的网络服务如下:
[WebMethod()]
public List<Sample> GenerateSamples(string[][] data)
{
ResultsFactory f = new ResultsFactory(data);
List<Sample> samples = f.GenerateSamples();
return samples;
}
返回对象列表,如果我将响应格式更改为 JSON,则必须将返回类型更改为字符串,那么如何在 javascript 中访问对象?
目前我在 JS 中调用此 Web 服务,例如:
$.ajax({
type: "POST",
url: "http://localhost/TemplateWebService/Service.asmx/GenerateSamples",
data: jsonText,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(response) {
var samples = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;
if (samples.length > 0) {
doSomethingHere(samples);
} else {
alert("No samples have been generated");
}
},
error: function(xhr, status, error) {
var msg = JSON.parse(xhr.responseText);
alert(msg.Message);
}
});
但我注意到,尽管一切都工作得很好,但 eval 语句永远不会被执行,这意味着 Web 服务总是返回一个字符串!
所以我的问题是,[ScriptMethod(ResponseFormat = ResponseFormat.Json)] 在 Web 服务定义方面是否必要?
现在的情况是,我可以使用样本数组并访问每个对象及其属性,就像我通常在任何 OOP 代码中一样,这非常方便,并且一切正常,但我只是想确保我我的设置中没有遗漏任何东西。
我从 Encosia 方面学习了将 Jquery 的 ajax 与 asp.net 相结合的基础知识,并且那里没有提到响应类型 - 我在另一个网站上读到它,我不确定它有多重要。
http://www.codeproject.com/KB/webservices/JsonWebServiceJQuery.aspx
列出了 ASP.NET Web 服务端的 4 个不同更改。我的 web.config 中只有前 2 个。服务本身和 Sample 类是在没有任何序列化的情况下实现的,但它确实具有属性。我猜 Web 服务默认是 JSON 吗?只要你的对象有属性,它们就默认是可序列化的?在我读到这篇文章之前,这是我的理解。
最佳答案
ResponseFormat 属性不是必需的。包括客户端和服务器设置,只需要四件事即可做到这一点:
当您执行这四件事时,服务方法的响应将自动序列化为 JSON。
关于jquery - [ScriptMethod(ResponseFormat = ResponseFormat.Json)],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2851117/
自定义 PowerShell 脚本或函数可以在其正文开头使用标准注释进行记录: function wellDocumented { param( [int]$foo ) }
我有和 $object 我想内置函数。我似乎无法弄清楚如何对添加功能的参数强制执行规则。 强制规则适用于与对象无关的标准函数,但是当我测试对象并运行函数时,我可以在没有所需强制参数的情况下执行。 $
在 ASP.net Web 服务中,如果不指定上述内容,默认的响应格式是什么?另外,如果我的网络服务如下: [WebMethod()] public List GenerateSamp
我对 powershell 相当陌生,正在不断挖掘、学习。 具体来说,我想知道如何查看与重写方法或添加的 ScriptMethod 相关的代码。 cmdlet:Get-Service 返回一个对象,该
我们目前正在重构我们的管理脚本。刚刚看来,WinRM、错误处理和 ScriptMethod 的组合极大地降低了可用的递归深度。 请参阅以下示例: Invoke-Command -ComputerNam
我有一个 .NET 3.5 aspx 位置,其中有一个用 [WebMethod] 属性标记的方法。我用 jQuery 调用它,双向发送 JSON。这一切都很好。我的问题是,[ScriptMethod]
我有一个存储在 session 中的对象列表。然后该列表出现在网页上,每个项目旁边都有小“X”。单击其中一个时,我使用 Javascript 从页面上的列表中删除该项目,然后我向服务器发送 AJAX
我是一名优秀的程序员,十分优秀!