Jose3d,
- Важно отметить, что параметры 'controller' и 'action' обрабатываются как специальные параметры в ASP.NET MVC.Эти параметры предоставляются для сопоставления URL, даже если они не могут быть явно указаны в разделе значений параметров.
Следовательно, следующий оператор:
Url.Action ("PrintLayout","Page",new {contentUrlTitle = Model.ContentUrlTitle}
предоставит следующие параметрыдля сопоставления маршрута:
controller = "Page", action = "PrintLayout", contentUrlTitle = "{значение Model.ContentUrlTitle}"
Как вы можете видеть здесь, 'controller' и 'Параметры действия неявно определяются ASP.NET MVC.
- Еще одна вещь, которую многие разработчики не понимают в маршрутизации ASP.NET MVC, заключается в том, что во время сопоставления маршрутов любые параметры, передаваемые в избыточном объеме, будутпоявляются в URL как «строки запроса»
Избыточные параметры - это те, которые не отображаются в URL.
В вашем случае параметр 'action' не отображается впоэтому URL-адрес будет рассматриваться как «избыточный параметр», и поэтому он отображается в виде строки запроса.
Я предлагаю следующее: попробуйте переформатировать ваш URL-адрес, чтобыhat {action} является частью сегмента url.
Одна вещь, которую я не понимаю, - почему параметр 'controller' также не отображается в виде строки запроса?Возможно, предоставление более подробной информации может быть более полезным.