route.MapRoute Путаница

Я знаю, что это общий подход:

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

Но если я попробую так:

 routes.MapRoute
    (
          name: "Defaults",
          url: "Home/Index/1"
    );

Это не даст никаких ошибок при запуске проекта. У меня есть Controller = Home Action = Index() в моем HomeController, но почему он выдает ошибку, когда я набираю это http://localhost:1702/Home/Index/1 в своем браузере?

Ошибка. Совпадающий маршрут не содержит обязательного значения маршрута «контроллер».

Какая часть является обязательной в маршрутизации? Другой вопрос: зачем нам Route Name?? Если я даю name="", он работает нормально, даже если существует более одного маршрута, такого как name=""


person Lutfor Rahman    schedule 30.08.2016    source источник
comment
Нет. Если вы попробуете, как я, это не даст вам никакой ошибки. Я знаю маршруты.MapRoute стал таким, как ты. По умолчанию он состоит из трех частей. имя, URL и значения по умолчанию, я знаю это   -  person Lutfor Rahman    schedule 30.08.2016
comment
Возможно, это может помочь? ваш вопрос кажется дубликатом.   -  person Grizzly    schedule 30.08.2016
comment
Может быть, но как насчет второго вопроса?   -  person Lutfor Rahman    schedule 30.08.2016
comment
Если вы просто используете: http://localhost:1702, идет ли это к home/index/1?   -  person Ric    schedule 30.08.2016
comment
Какая часть является обязательной в маршрутизации? Другой вопрос: зачем нам имя маршрута? Ответ на этот вопрос можно найти в здесь   -  person Grizzly    schedule 30.08.2016


Ответы (2)


ты нуждаешься в этом:

routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
person Ric    schedule 30.08.2016
comment
Я знаю, что это общий подход. Если я не использую значения по умолчанию, в чем будет проблема?? - person Lutfor Rahman; 30.08.2016
comment
@LutforRahman Существует перегруженный метод, в котором говорится, что вам не нужен defaults.. так почему бы вам не попробовать его? - person Grizzly; 30.08.2016
comment
Почему это приведет к перегрузке, если я укажу свой контроллер, действие и идентификатор в своем браузере? Не могли бы вы уточнить? - person Lutfor Rahman; 30.08.2016

URL-адрес определяет структуру URL-адреса для конечного пользователя. Вы даже можете изменить его на

url: "{action}/{controller}/{id}"

Итак, чтобы понять, что является контроллером, а что действием, вы должны предоставить структуру URL.

person Rahul Khandelwal    schedule 30.08.2016