将JSON objet传递到代码隐藏文件

时间:2018-07-15 18:41:22

标签: javascript c# asp.net asp.net-ajax

我已经使用ajax将javascript对象中的JSON对象传递给C#中文件(.cs)后面的代码,其代码如下:

 function buildProfile(user) {

            alert('user data');
            $.ajax({
                    type: 'POST',
                    url: '/Test.aspx/GetCity',
                    data: "{city:" + JSON.stringify(user) + "}",
                    //data: JSON.stringify(user),
                    contentType: 'application/json; charset=utf-8',
                    dataType: 'json',
                    success: function (r) {
                        alert(r.d.Name);
                    }
                });
}

在上面的代码中,控件已成功转到方法名称为“ GetCity ”的Test.aspx.cs代码隐藏文件。

我可以将JSON对象传递给用户控件而不是页面吗?例如,我可以创建一个名为Test的用户控件,并将上述代码的url更改为:url:'/Test.ascx/GetCity',代码将如下所示:

 function buildProfile(user) {

            alert('user data');
            $.ajax({
                    type: 'POST',
                    url: '/Test.ascx/GetCity',
                    data: "{city:" + JSON.stringify(user) + "}",
                    //data: JSON.stringify(user),
                    contentType: 'application/json; charset=utf-8',
                    dataType: 'json',
                    success: function (r) {
                        alert(r.d.Name);
                    }
                });
}

目前,该控件不会转到文件后面的用户控件Test.aspx.cs代码。可以将JSON对象传递给用户控件吗?

任何帮助将不胜感激。预先感谢。

1 个答案:

答案 0 :(得分:0)

不确定我是否满足您的需求,但几个月前我有类似的需求,也许此链接可以有所帮助(请参阅Ajith S Nair的评论):https://forums.asp.net/t/2022191.aspx?How+to+create+a+user+control+in+MVC

如果将他的扩展名与类似于ajax代码的东西结合使用,则可能是您的解决方案:

!function ($) {
"use strict";
$.ajax({
    type: "POST",
    url: "/ControllerName/MethodName",
    data: "{city:" + JSON.stringify(user) + "}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (response) {//Success code},
    failure: function (response) {//Failure code},
    error: function (response) {//Error code}
})};

希望对您有所帮助!