是否可以在asp.net Web表单中添加其他Application_start事件的路由

时间:2013-09-20 10:42:33

标签: c# asp.net webforms asp.net-routing

我有动态菜单,由我的客户创建。我已在Application_Start的{​​{1}}活动中注册了我的路线。现在我想在我的客户添加新菜单时注册路线。我怎样才能做到这一点?

目前,我已在global.asax的Application_Start事件中注册了所有旧路由。

global.asax

在管理员登录中,我向客户提供类似cms的功能,以便他们可以创建新页面。现在我的问题是,如何在路线中注册这些新的页面路线?。每次客户端添加新页面时,我都不想重新启动我的应用程序。我只想在客户端添加新页面时调用一种方法在我的路由中注册这些页面。我怎样才能做到这一点?

最后我有办法解决它。 我有调用以下方法来重新启动我的应用程序..

void Application_Start(object sender, EventArgs e)
{
    RegisterRoutes(RouteTable.Routes);
}

void RegisterRoutes(RouteCollection routes)
{

    string connectionstring = System.Configuration.ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
    SqlConnection sqlCon = new SqlConnection(connectionstring);
    SqlCommand sqlCmd = new SqlCommand("Sch_Sp_GetRegisterRoutes", sqlCon);
    sqlCmd.CommandType = CommandType.StoredProcedure;

    SqlDataAdapter sda = new SqlDataAdapter(sqlCmd);
    DataTable dt = new DataTable();

    try
    {
        sda.Fill(dt);
    }
    catch (Exception ex)
    {
    }
    finally
    {
        sqlCon.Close();

    }
    if (dt != null && dt.Rows.Count > 0)
    {
        foreach (DataRow dr in dt.Rows)
        {
            try
            {
                routes.MapPageRoute(dr["Menuname"].ToString().Replace(" ",string.Empty),
              dr["URL"].ToString(),
               "~/" + dr["Pagename"].ToString());
            }
            catch (Exception exx)
            {

            }

        }
    }


}

1 个答案:

答案 0 :(得分:0)

现在我使用以下代码重新启动我在路由中注册新创建的URL的应用程序。

 System.Web.HttpRuntime.UnloadAppDomain();