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

标签 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;
    }

正确的做法是什么?

最佳答案

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

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

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

或者...

如果始终将字符串传递给您的 Request 方法,则将使用 JSON.stringify 正确处理该字符串。

data: JSON.stringify({ 'param' : param }),

关于javascript - 从服务器端将字符串传递给 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33417387/

相关文章:

javascript - Clockify 中的登录表单

javascript - 文档准备好时执行 2 个方法的 jQuery 顺序

c# - 为什么我的模型属性在尝试 POST 时为空?

c# - 如何在上下文绑定(bind)对象中链接消息接收器(面向方面​​的编程)

jquery - Wordpress 自定义导航,下拉标题不可点击

javascript - 具有匹配值jquery js的对象属性

javascript - 如何在 Angular 应用程序中制作自定义上下文菜单?

javascript - 创建对象或数组来处理多步骤表单

javascript - Mediaelement.js:如何更改海报图片?

c# - FakeItEasy 伪造带有构造函数中参数的自定义属性的抽象类抛出 ArgumentException