在 ASP.net ".aspx"放置在子文件夹中的页面在单击菜单中的特定页面时无法访问



我在主页面上使用jquery菜单。菜单在运行时是否包含绑定取决于用户权限。在我的项目".aspx"中,放置在根文件夹和子文件夹中的页面。。当我点击菜单上的页面名称时,它会将我重定向到位于项目根部分的特定页面。但我无法重定向到子文件夹中的页面。。

目标页面名称是在数据库中定义的。点击它,从datatbse中选择目标url并重定向到页面。

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", "30px");
        loctbl.Style.Add("margin-left", "-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 = "&nbsp;&nbsp;" + 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 = "&nbsp;&nbsp;" + 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 = "&nbsp;&nbsp;" + 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);
    }
}

}

这是我在运行时绑定菜单的代码。。我无法访问子文件夹页面。。我试图在数据库中定义子文件夹路径。。它第一次起作用,但当我点击其他菜单时位于根目录中的页面,然后位于地址栏".aspx"中的页面名称附加子文件夹名称…所以页面找不到

请帮帮我。。。。。。。。。

在主页中使用"< base href='http://localhost/testapp/' />",它将帮助您。。

最新更新