将JSON对象传递到Code Behind文件



我使用ajax将JSON对象从javascript函数传递到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代码绑定文件。

我可以将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对象传递给用户控件?

任何帮助都将不胜感激。提前谢谢。

不确定我是否正确理解了你的需求,但几个月前我也有类似的需求,也许这个链接会有所帮助(请参阅Ajith S Nair评论(:https://forums.asp.net/t/2022191.aspx?How+到+create+a+用户+控件+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}
})};

我希望它能有所帮助!

最新更新