Пользовательский URL-адрес маршрутизации в MVC (appurl / {uniqueId} / {controller} / {action} / {id}) - PullRequest
0 голосов
/ 25 декабря 2018

Мы пытаемся создать приложение MVC в C #.Мы хотим изменить конфигурацию маршрутизации таким образом, чтобы он имел уникальный идентификатор между URL-адресом домена и именем контроллера. Уникальный идентификатор является динамическим и основан на уникальном идентификаторе, приложение будет подключаться к соответствующей базе данных через сервер эластичных баз данных.

Проблема в том, что mvc рассматривает uniqueId в качестве контроллера.Когда я искал, я нашел несколько решений, где uniqueId является статическим и уже определен. Пожалуйста, найдите ссылку для изображения ошибки ссылка

Например: Я хочупостроить что-то, как показано ниже, и он не работает RouteConfig :

routes.MapRoute(
    name: "Default",
    url: "{uniqueId}/{controller}/{action}/{id}",
    defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional, uniqueId = UrlParameter.Optional }
);

Пожалуйста, помогите нам с этим подходом.Есть ли другой способ заставить это работать.Заранее спасибо

Редактировать: Извините за то, что у вас есть имя хоста вместо uniqueId по умолчанию. Я отредактировал на uniqueid

Ответы [ 3 ]

0 голосов
/ 25 декабря 2018

URL-адреса, сгенерированные в таблице маршрутов, находятся во время запуска приложения.Они будут оставаться статичными во всем.

Один из обходных путей заключается в следующем: -

[NonAction]
public static string GetGuid()
{
    string myUniqueID = Guid.NewGuid().ToString(); //My Unique ID Logic


    return myUniqueID;
}

Вы можете вызывать это во всем приложении.

0 голосов
/ 25 декабря 2018

Я попробовал ваш код, просто добавив «uniqueid» к значениям по умолчанию, и он прекрасно работает для меня

routes.MapRoute(
                name: "Default",
                url: "{uniqueId}/{controller}/{action}/{id}",
                defaults: new { uniqueId = UrlParameter.Optional, controller = "Account", action = "Login", id = UrlParameter.Optional, hostname = UrlParameter.Optional }
            );
0 голосов
/ 25 декабря 2018

Напишите это на RouteConfig.cs

routes.MapMvcAttributeRoutes();

После этого напишите этот топ на вашем контроллере.

[Route("your_controller/your_ındex")]
...