读书人

ajax请求ashx数据,在ashx中当session替

发布时间: 2013-03-14 10:33:15 作者: rapoo

ajax请求ashx数据,在ashx中当session为空时要跳转页面
如题,前台ajax请求ashx代码如下:


$(document).ready(function () {
$.ajax(
{
async: false,
cache: false,
type: "POST",
url: "Ashx/getSysMenu.ashx",
success: function (data) {
zNodes = eval("(" + data + ")");
},
error: function (data) {
alert(data);
}
});
zTreeObj = $.fn.zTree.init($("#tree"), setting, zNodes);
});


后台Ashx代码如下:

public void ProcessRequest(HttpContext context)
{
if (context.Session["UserInfo"] != null)
{
//ZTree加载
SynchronousJsonTree(context);
}
else
{
context.Response.Write(string.Format(@"window.location.href='{0}'","Logon.aspx"));
}

}

/// <summary>
/// 同步ZTree加载
/// </summary>
/// <param name="context"></param>
private void SynchronousJsonTree(HttpContext context)
{
//
SYS_UserInfo user = context.Session["UserInfo"] as SYS_UserInfo;

List<SYS_Menu> menuList = _iSysMenu.LoadSysMenu(user);




StringBuilder sb = new StringBuilder();

if (menuList.Count > 0)
{
sb.Append("[");
foreach (SYS_Menu li in menuList)
{
sb.Append("{id:" + li.Menuid + ",pId:" + li.ParentId + ",name:\"" + li.Menu + "\",action:\"" + li.Url + "\"");
sb.Append("},");
}

sb = sb.Remove(sb.Length - 1, 1);

sb.Append("]");
}
string content = sb.ToString();
context.Response.Write(content);
}



当Session["UserInfo"]为空时不跳转,应当如何去操作. .net ajax ashx javascript
[解决办法]
如果session为空,返回一个特殊值,页面如果接收到特殊值,在浏览器段跳转
[解决办法]
new Function(data)()

读书人网 >asp.net

热点推荐