как изменить коллекции маршрутов во время выполнения в ядре asp.net - PullRequest
0 голосов
/ 28 октября 2018

Я изучаю ASP.NET core 2.0 для своего веб-приложения и использую файл json в качестве источника данных маршрутизации, что-то вроде этого:

route data source(jsonroute.json):

{
    "RouteSettings": [
        {
            "Name": "ArticleRoute",
            "Template": "{pathroot:regex((?i)^(HelperCenter|xxzx))}/{*pathetc:regex(^.*?(?<!index\\d*(/|\\.html)?)$)}",
            "Default": {
                "Controller": "Article", //articlecontroller is a file of site controllers, is selected when editing article class information
                "Action": "Index"
            }
        },
        {
            "Name": "ArticleClassRoute",
            "Template": "{pathroot:regex((?i)^(HelperCenter|Tours|xxzx))}/{*pathetc:regex((?i)^.*?(?<=index\\d*(/|\\.html)?)$)}",
            "Default": {
                "Controller": "ArticleClass",
                "Action": "Index"
            }
        },
        ....
    ]
}

отображение в mvc routebuilder:

app.UseMvc(routeBuilder =>
    {
        foreach (IConfigurationSection routeConfigItem in configurationItems)
        {
            .......
            routeBuilder.MapRoute(
                name: nameSection.Value, //this is form json name node
                template: templateSection.Value, // this is from template node
                defaults: defaultValueDictionary //this is from default node
            );
        }
    }
);

На startup.cs я прочитал информацию из этого файла json и сопоставил ее с mvc iroutebuilder для каждого элемента.но есть вопрос: файл json взят из класса статьи моего сайта и настроек статьи, это может быть изменено после того, как классы статьи были изменены.так что я хочу знать, есть ли способ, позволяющий мне изменить маршрут маршрутов, когда мой веб-сайт работает в сети?я хочу изменить коллекции маршрутов с помощью операций по управлению моим веб-сайтом, и это стало возможным в режиме онлайн.

...