Ранее в ASP.NET MVC
<routes>
<add name="VehicleDetailRoute" url="TwoWheeler/VehicleDetail/{id}">
<defaults controller="Integration" action="VehicleDetail" id="Optional" />
</add>
</routes>
public void RegisterRoutes(RouteCollection routes)
{ //Fill the route table section
RouteSection routesTableSection = GetRouteTableConfigurationSection();
if (routesTableSection == null || routesTableSection.Routes.Count <= 0)
return;
for (int routeIndex = 0; routeIndex < routesTableSection.Routes.Count; routeIndex++)
{
//base on different route, we have created dynamic routes and add in to
var routeElement = routesTableSection.Routes[routeIndex];
var route = new Route(
routeElement.Url,
GetDefaults(routeElement),
GetConstraints(routeElement),
GetDataTokens(routeElement),
GetInstanceOfRouteHandler(routeElement));
routes.Add(routeElement.Name, route);
}
}
Здесь, клиент видит TwoWheeler / VehicleDetail / в браузере, но внутри он рассматривает контроллер как Интеграция и действие как " VehicleDetail "
Теперь в .Net Core мы создали файл JSON и хотим прочитать.(хочу перейти на .Net Core 2.0 из ASP.NET MVC). При необходимости вы можете изменить формат или JSON.
{
"routes": {
"VehicleDetailRoute": {
"url": "TwoWheeler/VehicleDetail/{id}",
"controller": "Integration",
"action": "VehicleDetail",
"id": "Optional"
}
}
}
- url: отображение в браузере
- контроллер: оригинальный контроллер
- действие: оригинальное действие
- VehicleDetailRoute: имя маршрута
Пока что я прочитал конфигурацию в Автозагрузка файл
public Startup(IConfiguration configuration)
{
var configurationBuilder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("routes.json", optional: false, reloadOnChange: true);
Configuration = configurationBuilder.Build();
}
Добавлено services.AddRouting();
in ConfigureServices
В метод Configure добавлено app.UseStaticFiles();
Build Routing
var routeBuilder = new RouteBuilder(app);
routeBuilder.MapGet("{route}", context =>
{
var routeMessage = Configuration.AsEnumerable()
.FirstOrDefault(r => r.Key == context.GetRouteValue("route")
.ToString())
.Value;
var defaultMessage = Configuration.AsEnumerable()
.FirstOrDefault(r => r.Key == "default")
.Value;
var response = (routeMessage != null) ? routeMessage : defaultMessage;
return context.Response.WriteAsync(response);
});
app.UseRouter(routeBuilder.Build());
Вопрос : База наURL-адрес, введенный клиентом, я хочу перенаправить действие частиц.Хотите выполнить ниже метод с динамическим вводом
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Integration}/{action=VehicleDetailOnline}/{id?}");
});
Проверено ниже ссылки: radu-matei.com - c-sharpcorner - StackOverflow