複数の WebApi コントローラーを持つ WebApi プロジェクトを作成しました。私の要件に従って、MVC コントローラーを WebApi プロジェクトに追加する必要があります。私のクライアント側のコードは、その MVC コントローラーに ajax リクエストを{ControllerName/ActionMethodName}
. global.asax
ファイルに複数のルートがあります。
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
routes.MapHttpRoute(
name: "ActionRoute",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
以下は私のものReportServiceBaseController
です:
protected virtual ReportServiceBase CreateReportService();
[HttpPost]
public JsonResult LoadDocumentInfo(LoadDocumentInfoRequest request);
[HttpPost]
public JsonResult LoadDocumentMapInfo(LoadDocumentMapInfoRequest request);
[HttpPost]
public JsonResult LoadDocumentMapInfoFull(LoadDocumentMapInfoFullRequest request);
[HttpPost]
public JsonResult LoadPageInfo(LoadPageInfoRequest request);
私はコントローラーでそのコントローラーを継承していReportService
ます:
public class ReportServiceController : ReportServiceBaseController
{
protected override PerpetuumSoft.Reporting.WebViewer.Server.ReportServiceBase CreateReportService()
{
return new ServiceClass();
}
}
リクエストを行っているクライアント側の URL:
"http://" + ホスト名 + "/ReportService/LoadDocumentInfo"
WebApi ルートが MVC コントローラー ルートを抑制していると思います。MVC コントローラー ルートを WebApi ルートから分離するにはどうすればよいですか?