从服务器端将字符串传递给JavaScript函数

时间:2015-10-29 14:45:43

标签: javascript c# jquery asp.net ajax

我正在尝试将字符串参数从服务器端传递给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;
    }

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您传递给Web方法的JSON暗示它是一个数值,在param值周围添加引号:

<强>旧

data: "{'param' : "+param+"}",

data: "{'param' : '"+param+"'}",

另外......

如果字符串始终传递给您的Request方法,则可以使用JSON.stringify

正确处理
data: JSON.stringify({ 'param' : param }),