Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 作为javascript参数的JSON原语无效_C#_Json - Fatal编程技术网

C# 作为javascript参数的JSON原语无效

C# 作为javascript参数的JSON原语无效,c#,json,C#,Json,我有这个错误。我总是对这句话有疑问:( 函数genericax(url、数据){ $.ajax({ 类型:“POST”, url:url, 数据:数据, contentType:“应用程序/json;字符集=utf-8”, 数据类型:“json”, 成功:函数(数据){} }); } [网络方法] 公共静态对象登录(字符串UserUId) { //一些代码 } 按钮创建者Javascript var param = '{'; for (t in Cu

我有这个错误。我总是对这句话有疑问:(


函数genericax(url、数据){
$.ajax({
类型:“POST”,
url:url,
数据:数据,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:函数(数据){}
});
}
[网络方法]
公共静态对象登录(字符串UserUId)
{
//一些代码
}
按钮创建者Javascript

 var param = '{';
                    for (t in CustomButtonJson[i].param)
                        param += '"' + CustomButtonJson[i].param[t]["Key"] + '":"' + rowData[CustomButtonJson[i].param[t]["Value"]] + '",';

                    param = param.substring(0, param.length - 1) + '}';

                    var ajax = 'genericAjax("' + CustomButtonJson[i].url + '/' + CustomButtonJson[i].ajaxMethod + '",' + param + ')';


                    button += 
                        "<a class='btn-xs btn-info' href='#' onclick=" + ajax + " " +
                            "title='" + CustomButtonJson[i].title + "'>" + CustomButtonJson[i].name + "</a>";
var param='{';
对于(CustomButtonJson[i].param中的t)
参数+=''''''+CustomButtonJson[i]。参数[t][“键”]+':“'+rowData[CustomButtonJson[i]。参数[t][“值”]+',”;
param=param.substring(0,param.length-1)+'}';
var ajax='genericax('+CustomButtonJson[i].url+'/'+CustomButtonJson[i].ajaxMethod+','+param+');
按钮+=
"";
您使用双引号来包围
onclick
事件,但也将参数传递给
genericax
,因此JS无法区分这两种用法

相反,用一组不同的字符(单引号)来包装整个过程(我想你也可以选择在这里转义引号,但这是我能看到的最简单的解决方案)

有趣的是,这里StackOverflow代码片段的颜色完美地说明了我要解释的内容。将上面我建议的解决方案的颜色与以下(您的)颜色进行比较,您可以看到发生了什么:

onclick="genericAjax("/Admin/LoginAsUser.aspx/LoginAs",{"UserUId":"854c46fc-6e50-4574-a103-16e16f24bf38"})"
答案是:

<form id="form1" runat="server">
    <div>
        <a class="btn-xs btn-info" title="Login As User" id="btnLogin" href="#">Login</a>
        <a class="btn-xs btn-info" title="Login As User" onclick="genericAjax('/Default.aspx/LoginAs', '{&quot;UserUId&quot;:&quot;bbbb&quot;}')" href="#">Login</a>

    </div>
    <script>
        $(document).ready(function () {
            $("#btnLogin").click(function () {
                genericAjax('/Default.aspx/LoginAs', '{"UserUId":"aaaa"}');
            });
        });
        function genericAjax(url, data) {
            $.ajax({
                type: "POST",
                url: url,
                data: data,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) { alert(data.d); }
            });
            return false;
        }
    </script>
</form>

$(文档).ready(函数(){
$(“#btnLogin”)。单击(函数(){
genericAjax('/Default.aspx/LoginAs','{“UserUId”:“aaaa”}');
});
});
函数genericax(url、数据){
$.ajax({
类型:“POST”,
url:url,
数据:数据,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:函数(data){alert(data.d);}
});
返回false;
}

每当我使用“browser truns to”时,我都无法创建您的样式;我也会将我的按钮创建器脚本粘贴到问题中。仍然会得到相同的错误输出;onclick=“genericax('/Admin/LoginAsUser.aspx/LoginAs',{“UserUId”:“854c46fc-6e50-4574-a103-16e16f24bf38”})
onclick="genericAjax("/Admin/LoginAsUser.aspx/LoginAs",{"UserUId":"854c46fc-6e50-4574-a103-16e16f24bf38"})"
<form id="form1" runat="server">
    <div>
        <a class="btn-xs btn-info" title="Login As User" id="btnLogin" href="#">Login</a>
        <a class="btn-xs btn-info" title="Login As User" onclick="genericAjax('/Default.aspx/LoginAs', '{&quot;UserUId&quot;:&quot;bbbb&quot;}')" href="#">Login</a>

    </div>
    <script>
        $(document).ready(function () {
            $("#btnLogin").click(function () {
                genericAjax('/Default.aspx/LoginAs', '{"UserUId":"aaaa"}');
            });
        });
        function genericAjax(url, data) {
            $.ajax({
                type: "POST",
                url: url,
                data: data,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) { alert(data.d); }
            });
            return false;
        }
    </script>
</form>