这是我的webmethod
[WebMethod]
public string CheckService(string name, ref string msg)
{
return "Hello" + name;
}
这是我的ajax
通话
$(document).ready(function () {
$.ajax({
type: "POST",
url: "<%= ResolveUrl("integrator.asmx/CheckService") %>",
data: '{name: "zakki",msg:"" }',
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function (data1) {
console.log('', data1.d);
}
});
});
它引发错误
Cannot convert object of type 'System.String' to type 'System.String&'
答案 0 :(得分:1)
简短的答案是:在标记有ref
属性的方法中,不能对参数使用传递引用(带有out
/ [WebMethod]
关键字)。
以下是解释为什么从this reference中提取&
作为第二种System.String
类型的异常消息的原因:
解码此消息源的关键是位于“ 文本的结尾。这是传递参数时使用的语法 到功能BYREF(按参考)并在 C-符号表示“通过AddressOf”变量名。即使你编码 C#/ VB.NET中的WebService,Microsoft会将其转换/编译为C类型 它作为程序集输出时的符号。
因此,使用[WebMethod]
属性的方法内的所有参数都必须通过删除ref
关键字来使用传递值:
[WebMethod]
public string CheckService(string name, string msg)
{
// return string here
}