Это точно правильно, потому что компилятор должен знать, какой тип он предназначен для распределения. Поэтому классы шаблонов, функции, перечисления и т. Д. Должны быть реализованы также в файле заголовка, если он должен быть опубликован или частично из библиотеки (статический или динамический), поскольку файлы заголовков НЕ скомпилированы в отличие от файлов c / cpp, которые находятся. Если компилятор не знает, что тип не может его скомпилировать. В .Net это возможно, потому что все объекты происходят из класса Object. Это не .Net.
Если я попытаюсь выполнить HTTP-POST, выполнив http: // localhost: puerto / Api / Registros / registro (без дополнительных параметров), сервер вернет мне ошибку 404 : "Ресурс не найден". Я устанавливаю точку останова внутри метода Controller, в предложении switch (), и когда я пытаюсь получить доступ с помощью HTTP-POST, никогда не выполняю этот метод.
blockquote>Я полагаю, у вас есть два правила перезаписи URL в вашем приложении, одно - правило AccesoRegistro, другое - правило по умолчанию.
Правило по умолчанию выглядит следующим образом:
routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } );
Таким образом, http: // localhost: puerto / Api / Registros / registro будет сначала соответствовать правилу по умолчанию "{controller} / {action} / {id} "не правило AccesoRegistro, оно вернет ошибку 404.
Я полагаю, вы могли бы поставить правило AccesoRegistro перед правилом по умолчанию, тогда оно будет работать хорошо.
Как показано ниже:
routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); routes.MapRoute( "AccesoRegistro", "Api/Registros/Registro/{email}/{fecha}", new { controller = "Registros", action = "Registro", email = UrlParameter.Optional, fecha = UrlParameter.Optional }
Результат: