Я использую Attribute Routing
в приложении MVC4
. Я установил маршрут до [Route("test-{testParam1}-{testParam2}")]
. Здесь `{testParam2} 'может состоять из слова« тест ». Например, если я ввожу URL-адрес, как указано ниже,Маршрутизация атрибутов не работает в MVC4
localhost:33333/test-temp-test-tempparam2
Это дает мне 404 ошибки. Здесь, в URL-адресе, здесь {testParam2}
имеет два слова test tempparam2
, отформатированный до test-tempparam2
. Когда test
слово находится в последнем положении {testParam2}
, он работает хорошо. Это означает, что если URL-адрес похож на .../test-temp-tempParam2-test
работает хорошо. Но после этого дайте ошибку. .../test-temp-test-tempParam2
.
Ниже приведен код, который может помочь ...
[Route ("test-{testParam1}-{testParam2}")]
public ActionResult Foo (int testParam2) {...}
Теперь попробуйте следующие два URL.
localhost:(port)/test-temp-1
localhost:(port)/test-test-temp-1
В моем случае второй дает ошибку. В этом случае первый параметр отформатирован до test-temp
от test temp
. Сначала работает хорошо.
Как решить эту проблему?
Вы можете использовать {testparam2}, как test_tempparam2 –
Взгляните на этот проект на GitHub. Он распространяется как пакет nuget. https://github.com/AtaS/lowercase-dashed-route – jvanrhyn
@DhavalR предоставляет [mcve], который может использоваться для воспроизведения проблемы. Таким образом, он может быть использован для поиска лучших ответов. – Nkosi