我正在尝试将字符串参数从服务器端传递给javascript函数,该函数将发布到AJAX方法。 html是在服务器端动态生成的,我使用onclick属性调用javascript函数。问题是它适用于数值,但是当我传入字符串值时,我收到内部服务器错误。
这是我的服务器端代码:
str.Append("<span class=\"button-accept\"><a class=\"btn btn-primary btn-sm\" onclick=\"Request('"+from.ToString()+"')\" href=\"#\"><i class=\"fa fa-check\"></i></a></span>");
这是我的javascript方法:
function Request(param) {
$.ajax({
type: "POST",
url: '<%= ResolveUrl("~/myaccount/notifications/Default.aspx/Accept") %>',
data: "{'param' : "+param+"}",
contentType: "application/json",
success: function (msg) {
msg = msg.hasOwnProperty("d") ? msg.d : msg;
alert(msg);
}
});
}
function OnSuccess(response) {
alert(response.d);
}
这是AJAX将调用的方法:
[WebMethod]
public static string Accept(string param)
{
return param;
}
这样做的正确方法是什么?
答案 0 :(得分:1)
您传递给Web方法的JSON暗示它是一个数值,在param
值周围添加引号:
<强>旧强>
data: "{'param' : "+param+"}",
新强>
data: "{'param' : '"+param+"'}",
另外......
如果字符串始终传递给您的Request
方法,则可以使用JSON.stringify
data: JSON.stringify({ 'param' : param }),