Как игнорировать имя действия в маршруте с ASP. NET MVC? - PullRequest
0 голосов
/ 16 января 2020

Допустим, у меня есть следующий простой контроллер:

public class DataController: Controller
{     
    [HttpGet]
    public ActionResult Index()
    {
        // some code
    }
}

Теперь я бы хотел, чтобы действие Index всегда вызывалось при наличии запроса GET к DataContoller. Иными словами, игнорировать имя действия и любые другие параметры. Например, все следующие вызовы должны обрабатываться действием Index:

Как мне этого добиться?

Ответы [ 2 ]

3 голосов
/ 16 января 2020

Вы должны обновить свой RouteConfig следующим образом:

public class RouteConfig
{
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.MapRoute(
                name: "RouteOverwrite",
                url: "data/{*catchall}",
                defaults: new { controller = "Data", action = "Index" }
            );
        }
}

Убедитесь, что вы используете это в Application_Start:

public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            System.Net.ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;

// register route config
            RouteConfig.RegisterRoutes(RouteTable.Routes);
        }
    }
0 голосов
/ 16 января 2020

вы можете сделать это с помощью routetable. проверить system.web.routing в asp. net mvc.

...