C# extjs 调用后台函数 获取函数返回值的问题
Ext.Ajax.request({
url: '/Main.aspx/InitMenuJson',
method: 'GET',
success: function (response) {
var trn = new Ext.data.TreeStore({ text: 'root' });
trn = response;
//Ext.get("trpl").appendChild(trn);
},
failure: function (response, options) {
Ext.MessageBox.alert('失败', response.status);
}
});
以上是前台js函数,页面是Main.aspx,InitMenuJson是调用的后台方法名称。返回的是object,
后台方法是
public object InitMenuJson()
{
List<ExtJs.Model.System.DIC_SYS_MENU> listModel=new List<ExtJs.Model.System.DIC_SYS_MENU>();
ExtJs.Model.System.DIC_SYS_MENU Model = new ExtJs.Model.System.DIC_SYS_MENU();
listModel = DIC_SYS_MENU_BLL.GetDataByModelWithList(Model);
var jser = new JavaScriptSerializer();
var json = jser.Serialize(listModel);
//var sJson = jser.Deserialize<List<ExtJs.Model.System.DIC_SYS_MENU>>(json);
return json;
}
后台返回的其实是一个json数据格式对象。
但是前台我跟进了response,结果显示,人家把Main.aspx主页面的前台代码一股脑儿给我显示出来了。
前台要的是 返回的json啊,到底什么情况啊 高分奉上 展开
把你的json串用resposne.write(json)返回来就行了 不是return
public void InitMenuJson()
{
List<ExtJs.Model.System.DIC_SYS_MENU> listModel=new List<ExtJs.Model.System.DIC_SYS_MENU>();
ExtJs.Model.System.DIC_SYS_MENU Model = new ExtJs.Model.System.DIC_SYS_MENU();
listModel = DIC_SYS_MENU_BLL.GetDataByModelWithList(Model);
var jser = new JavaScriptSerializer();
var json = jser.Serialize(listModel);
//var sJson = jser.Deserialize<List<ExtJs.Model.System.DIC_SYS_MENU>>(json);
resposne.write(json。toString());
}
前台该怎么写呢,我就要那个返回值了,response.resposneText依然是Main.aspx的前台代码。。。
url: '/Main.aspx/InitMenuJson', 你这个地方不对,除非你的是webmethod。给你看个例子,但不是ext的也是放回json的
$.ajax({
url: "YanQiYearReport.aspx", //路径
type: 'post',
data: { Serach: "Serach", Year: $.trim($("#date").val()) },//参数
dataType: "html",
beforeSend: function (XMLHttpRequest) {
$("#loading").css("display", "block");
},
complete: function (XMLHttpRequest, textStatus) {
$("#loading").css("display", "none");
},
success: function (data) {
此处返回json
}
});
后台
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string Serach = Request["Serach"];
if (Serach == "Serach")
{
Response.Write(Load());//Load 你给成你的方法就行啦,load 方法的返回类型是 string
Response.End();
}
}