如何解决在ASP.net中,单击菜单中的特定页面时,无法访问放置在子文件夹中的“ .aspx”页面
| 我在母版页上使用jquery菜单。菜单包含绑定在运行时取决于用户权限。 在我的项目\“。aspx \”页面放置在根文件夹以及子文件夹中。.当我单击菜单上的页面名称时,它会将我重定向到位于项目根目录中的特定页面。 但我无法重定向到子文件夹中的页面。 目标页面名称在数据库中定义。单击后,从datatbse中选择目标网址并重定向到页面。using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using AjaxPro;
public partial class Reports_fleet : System.Web.UI.MasterPage
{
Jetfleet_Framework.clsDataAcess objData = new Jetfleet_Framework.clsDataAcess();
DataSet dsMenu = new DataSet();
HttpBrowserCapabilities objbrowser;
protected void Page_Load(object sender,EventArgs e)
{
objbrowser = Request.Browser;
if (objbrowser.Browser == \"AppleMAC-Safari\")
{
loctbl.Style.Add(\"margin-top\",\"30px\");
loctbl.Style.Add(\"margin-left\",\"-30px\");
sumnu.Style.Add(\"margin-top\",\"2px\");
}
if (objbrowser.Browser == \"Firefox\")
{
loctbl.Style.Add(\"margin-top\",\"-50px\");
sumnu.Style.Add(\"margin-top\",\"2px\");
}
lbl.Text = Session[\"ServiceLocName\"].ToString();
hdnRelease.Value = Session[\"Release\"].ToString();
hdnCloseWindow.Value = Session[\"userId\"].ToString();
Utility.RegisterTypeForAjax(typeof(Reports_fleet));
Response.Buffer = true;
Response.ExpiresAbsolute = DateTime.Now.AddDays(-1d);
Response.Expires = -1500;
Response.Cache.SetNoStore();
Response.CacheControl = \"no-cache\";
if (Session[\"userId\"] == null)
{
Response.Redirect(\"LogIn.aspx\");
}
//name.InnerHtml = Session[\"userFullName\"].ToString();
BuildNavigationMenu();
name.InnerHtml = Session[\"userFullName\"].ToString();
if (!this.IsPostBack)
{
if (Session[\"Release\"] == \"True\")
{
string spRelease = \"usp_ins_upd_task_assign;3\";
Object[] paramRelease = new Object[1];
paramRelease[0] = (Object)Session[\"userId\"].ToString();
objData.ExecuteNonQuery(spRelease,paramRelease);
}
else
{
Session[\"Release\"] = \"True\";
}
}
}
private void BuildNavigationMenu()
{
//Creates html UL element for menu.
string uname = \"\",pass = \"\",location = \"\";
Session[\"bchk\"] = \"True\";
int userId = System.Int32.Parse(Session[\"userId\"].ToString());
int roleId = System.Int32.Parse(Session[\"userRole\"].ToString());
try
{
if (Session[\"navigation_menu_dataset\"] != null)
{
dsMenu = (DataSet)Session[\"navigation_menu_dataset\"];
}
else
{
dsMenu = GetNavigationMenu(userId,roleId);
Session[\"navigation_menu_dataset\"] = dsMenu;
}
uname = Session[\"userName\"].ToString();
pass = Session[\"password\"].ToString();
location = Session[\"loction\"].ToString();
Session[\"username\"] = uname;
Session[\"password\"] = pass;
Session[\"Location\"] = location;
int mnuCount,totalMenus;
totalMenus = System.Int32.Parse(dsMenu.Tables[1].Rows[0][\"total_menus\"].ToString());
HtmlGenericControl divMenu = new HtmlGenericControl(\"div\");
divMenu.Attributes[\"id\"] = \"menu\";
HtmlGenericControl ulMenu = new HtmlGenericControl(\"ul\");
ulMenu.Attributes[\"class\"] = \"menu\";
for (mnuCount = 1; mnuCount <= totalMenus; mnuCount++)
{
HtmlGenericControl liMain = new HtmlGenericControl(\"li\");
if (mnuCount == totalMenus)
{
liMain.Attributes[\"class\"] = \"last\";
}
else
{
liMain.Attributes[\"class\"] = \"parent\";
}
HtmlGenericControl aMain = new HtmlGenericControl(\"a\");
aMain.Attributes[\"href\"] = \"#\";
HtmlGenericControl spMenu = new HtmlGenericControl(\"span\");
DataRow[] drMenu = null;
drMenu = dsMenu.Tables[0].Select(\"parent_menu_id = \" + mnuCount);
if (drMenu.Length != 0)
{
spMenu.InnerHtml = drMenu[0][\"parent_menu_name\"].ToString();//Masters
aMain.Controls.Add(spMenu);
liMain.Controls.Add(aMain);
HtmlGenericControl divMenu1 = new HtmlGenericControl(\"div\");
HtmlGenericControl ulMenu1 = new HtmlGenericControl(\"ul\");
int subMenuStepTo = 0;
for (int rowcnt = 0; rowcnt < drMenu.Length; rowcnt++)
{
if (drMenu[rowcnt][\"is_folder\"].ToString().ToLower() == \"false\")
{
//If no submenus are there.
HtmlGenericControl liMain1 = new HtmlGenericControl(\"li\");//Booking Upload
HtmlGenericControl aMain1 = new HtmlGenericControl(\"a\");
aMain1.Attributes[\"href\"] = drMenu[rowcnt][\"target_url\"].ToString();
HtmlGenericControl spMenu1 = new HtmlGenericControl(\"span\");
spMenu1.InnerHtml = \" \" + drMenu[rowcnt][\"display_text\"].ToString();
aMain1.Controls.Add(spMenu1);
liMain1.Controls.Add(aMain1);
ulMenu1.Controls.Add(liMain1);
}
if (drMenu[rowcnt][\"is_folder\"].ToString().ToLower() == \"true\")
{
//submenus are there
DataRow[] drSubMenu;
HtmlGenericControl liMain1 = new HtmlGenericControl(\"li\");//Customer
liMain1.Attributes[\"class\"] = \"parent\";
HtmlGenericControl aMain1 = new HtmlGenericControl(\"a\");
aMain1.Attributes[\"href\"] = \"#\";
HtmlGenericControl spMenu1 = new HtmlGenericControl(\"span\");
subMenuStepTo = rowcnt;
spMenu1.InnerHtml = \" \" + drMenu[subMenuStepTo][\"display_name\"].ToString(); //subMenuStepTo
aMain1.Controls.Add(spMenu1);
liMain1.Controls.Add(aMain1);
drSubMenu = dsMenu.Tables[0].Select(\"display_name = \'\" + drMenu[subMenuStepTo][\"display_name\"].ToString() + \"\' AND parent_menu_id = \" + mnuCount);//subMenuStepTo
HtmlGenericControl divMenu2 = new HtmlGenericControl(\"div\");
HtmlGenericControl ulMenu2 = new HtmlGenericControl(\"ul\");
for (int rowcnt1 = 0; rowcnt1 < drSubMenu.Length; rowcnt1++)
{
if (mnuCount == 3)
{
AppRelativeTemplateSourceDirectory = \"~/Reports\";
}
HtmlGenericControl liMain2 = new HtmlGenericControl(\"li\");//Corporate
HtmlGenericControl aMain2 = new HtmlGenericControl(\"a\");
aMain2.Attributes[\"href\"] = drSubMenu[rowcnt1][\"target_url\"].ToString();
HtmlGenericControl spMenu2 = new HtmlGenericControl(\"span\");
spMenu2.InnerHtml = \" \" + drSubMenu[rowcnt1][\"display_text\"].ToString();
aMain2.Controls.Add(spMenu2);
liMain2.Controls.Add(aMain2);
ulMenu2.Controls.Add(liMain2);
}
subMenuStepTo = subMenuStepTo + (drSubMenu.Length - 1);
divMenu2.Controls.Add(ulMenu2);
liMain1.Controls.Add(divMenu2);
ulMenu1.Controls.Add(liMain1);
}
if (drMenu[rowcnt][\"is_folder\"].ToString().ToLower() != \"false\")
{
rowcnt = subMenuStepTo;
}
}
divMenu1.Controls.Add(ulMenu1);
liMain.Controls.Add(divMenu1);
}
ulMenu.Controls.Add(liMain);
}
divMenu.Controls.Add(ulMenu);
mnuContainer.Controls.Add(divMenu);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
dsMenu.Dispose();
}
}
private DataSet GetNavigationMenu(int userId,int roleId)
{
//Gets menu items based on user id.
try
{
string spMenu = \"usp_get_navigation_menu;2\";
Object[] paramsMenu = new object[2];
paramsMenu[0] = (Object)userId;
paramsMenu[1] = (Object)roleId;
objData.FillDataset(spMenu,dsMenu,null,paramsMenu);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
objData.Dispose();
}
return dsMenu;
}
[AjaxPro.AjaxMethod]
public void CloseWindow(int userid,string release)
{
if (release == \"False\")
{
string spRelease = \"usp_ins_upd_task_assign;3\";
Object[] paramRelease = new Object[1];
paramRelease[0] = (Object)userid;
objData.ExecuteNonQuery(spRelease,paramRelease);
}
}
}
这是我在运行时绑定菜单的代码..我无法访问子文件夹页面..i试图在数据库中定义子文件夹路径..它在第一次使用时有效,但是当我单击其他菜单时
页面位于根目录中,然后位于地址栏“ .aspx”中,页面名称带有子文件夹名称
...所以找不到页面
请帮我 .........
解决方法
在主页上使用
\"< base href=\'http://localhost/testapp/\' />\"
,将对您有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。