Как определить маршрут для нескольких областей в ядре .net - PullRequest
0 голосов
/ 12 февраля 2019

Изначально у меня была только одна область, и я хотел использовать ее в качестве маршрута по умолчанию, поэтому я настроил ее следующим образом:

routes.MapRoute(
    name: "default",
    template: "{area=Product}/{controller=Home}/{action=Index}/{id?}");

, и она работала нормально.Теперь я хочу включить еще одну область «Порядок» и настроить маршрут следующим образом:

 app.UseMvc(routes =>
 {
     routes.MapRoute(
            name: "default",
            template: "{area=Product}/{controller=Home}/{action=Index}/{id?}");
     routes.MapRoute(
            name: "orderRoute",
            template: "{area=Order}/{controller=Home}/{action=Index}/{id?}");
 });

и в главном контроллере области «Порядок»:

[Area("Order")]
public class HomeController : Controller
{

Теперь, когда я нажимаю https://localhost:44632/order Iполучаю 404 не найден но https://localhost:44632/product работает нормально.Я также пытался настроить orderRoute до маршрута по умолчанию, но все равно получил те же результаты.Что я делаю не так?

1 Ответ

0 голосов
/ 12 февраля 2019
It looks correct. Just needs a change. You need to add default route in the end not as the first route. just interchange and it should work.


With .net core, following is needed to be added in the startup file if you are adding an area:

     app.UseMvc(routes =>
            {
                routes.MapRoute(
                  name: "areas",
                  template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
                );
            });

After that you can just simply mark your area and route in the controller, i.e
     [Area("Order")]
     [Route("order")]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...