Krishnananthan Vijayaretnam Ответов: 1

Asp.net MVC устанавливает маршрут из таблицы базы данных C#


В настоящее время я работаю над asp.net проект mvc. Я сделал атрибутивную маршрутизацию, и она работает хорошо. Код приведен ниже.
Теперь я думаю о том, чтобы сохранить значения маршрута в таблице и настроить его на соответствующие действия.

Например в настоящее время для акции Тестон Я установил "Test_Test_One" как маршрут.
Что я хочу сделать, так это взять это значение маршрута из таблицы базы данных и установить его в Тестон действие.

Можно ли это сделать? Может ли кто-нибудь помочь мне в этом? Заранее спасибо.

Что я уже пробовал:

[RoutePrefix("")]
public class TestController : Controller
{

	public ActionResult Index(int page)
        {
            switch(page)
            {
                case 1: return RedirectToAction("TestOne", "Test");               
                default: return View();
            }
            
        }

	[Route("Test_Test_One")]
        public ActionResult TestOne()
        {
            return View();
        }
}

1 Ответов

Рейтинг:
0

Afzaal Ahmad Zeeshan

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

Один из способов решить эту проблему-использовать динамический маршрут, а затем обработать фактический URI во время выполнения и выполнить контроллер/действие на его основе.

Динамическая маршрутизация контроллера в ASP.NET Core 3.0 | StrathWeb. Свободный текучий монолог веб-технологий.[^]

Большинство методов динамического сопоставления путей также потерпят неудачу, поскольку ваши данные поступают из базы данных. Поэтому, если ваша база данных не используется для генерации кода и маршрутов в приложении, эти методы потерпят неудачу. Вам нужно будет использовать подстановочный знак, чтобы перехватить все запросы, а затем передать запрос соответствующему контроллеру и действию. Да, такие вещи, как RedirectToAction() они бы здесь пригодились. Этой теме так говорит об этом подходе, c# - динамические маршруты из базы данных для ASP.NET MVC CMS - переполнение стека[^]

Обрабатывать запросы с помощью контроллеров в ASP.NET Core MVC | Microsoft Docs[^]


Krishnananthan Vijayaretnam

Спасибо за ваш ответ. Я попробую это сделать и отмечу как ответ, если это сработает для моего сценария.