Возможно, но вам потребуется написать собственную логику для обработки сбора и обновления маршрутов на основе добавления/удаления в коллекцию.
Код, приведенный ниже, состоит в том, чтобы показать основы того, как это может быть достигнуто. Существует множество способов динамического хранения и маршрутов обновления пользователей.
В Global.asax Предположим, у вас есть некоторый предопределенный маршрут:
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
RegisterRoutes(RouteTable.Routes);
}
void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("RouteDirect", "about/{user}", "~/about.aspx");
}
Теперь About.aspx имеет возможность считывать значение маршрута.
protected void Page_Load(object sender, EventArgs e)
{
if (Page.RouteData.Values["user"] != null)
{
TextBox1.Text = Page.RouteData.Values["user"].ToString();
}
}
При просмотре локального хоста: 51604/об/джон Вы увидите Джона в текстовом поле.
Ниже приведен простой пример того, как вы можете добавлять/удалять маршруты. Вы можете расширить эту логику в соответствии с вашими потребностями, где вы можете показать все существующие маршруты на защищенной странице для своей группы контента и предоставить им возможность добавлять/удалять/отключать маршрут или иметь более сложный способ указания параметров маршрута и т. Д.
protected void Button1_Click(object sender, EventArgs e)
{
//Adding New Route on Button Click
RouteTable.Routes.MapPageRoute("RouteDirectNew", "aboutnew/{user}", "~/about.aspx");
//Now route table has 2 routes:
// about/{user}
// aboutnew/{user}
}
protected void Button2_Click(object sender, EventArgs e)
{
//Removing new route on button click
RouteCollection rcollection = new RouteCollection();
rcollection = RouteTable.Routes;
Route ToDeleteRoute = null;
foreach (Route r in rcollection)
{
if (r.Url == "aboutnew/{user}")
ToDeleteRoute = r;
}
if(ToDeleteRoute != null)
RouteTable.Routes.Remove(ToDeleteRoute);
//Now route table has only 1 route the original added via global.asax:
// about/{user}
}