Мой контроллер и имя области совпадают, если я хочу вызвать метод контроллера по умолчанию, действие которого совпадает с именем контроллера внутри области - PullRequest
0 голосов
/ 16 октября 2019

Я создал одно простое приложение MVC.

У меня есть один контроллер, а именно HelathController .

В этом HealthController у меня есть два метода, а именно Индекс & BodyMass

Теперь я создал одну область, а именно Здоровье

В этой области у меня есть контроллер, а именно BodyMassController

Этот BodyMassController имеет метод Индекс .

Я ничего не изменяю, файл маршрутизации.

Ниже мой HelathController

 public class HealthController : Controller
 {
        public ActionResult Index()
        {
            return View();
        }
        // GET: Health
        public ActionResult BodyMass()
        {
            return View();
        }
  } 

Это мой BodyMassController, который находится внутри Здоровье Площадь.

  public class BodyMassController : Controller
  {
            // GET: Health/Health
            public ActionResult Index()
            {
                return Content("Hello " + text);
            }
   }

Это Код моей областиRegsitration.

  public override void RegisterArea(AreaRegistrationContext context) 
  {
            context.MapRoute(
                "Health_default",
                "Health/{controller}/{action}/{id}",
                new { action = "Index", id = UrlParameter.Optional }
            );
   }

Global.asax

protected void Application_Start()
{
     AreaRegistration.RegisterAllAreas();
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);          
     BundleConfig.RegisterBundles(BundleTable.Bundles);
}

Теперь, когда я использую Url / Health Он будет автоматически вызывать метод индекса HelathController.

Теперь, когда я использую Url Health / BodyMass Он автоматически вызовет метод индекса BodyMassController в области HelathController.

Если я хочу Cвсе HelathController BodyMass (), что мне нужно сделать?

1 Ответ

0 голосов
/ 21 октября 2019

Нужно добавить это в ваш файл RouteConfig.cs:

routes.MapRoute(
    name: "HelathControllerIndex",
    url:  "Helath",
    defaults: new { controller = "Helath", action = "Index", id = UrlParameter.Optional }
);

routes.MapRoute(
    name: "BodyMassControllerIndex",
    url:  "Health/BodyMass",
    defaults: new { controller = "BodyMass", action = "Index", id = UrlParameter.Optional }
);
...