シンプルなmvc 4 プロジェクトに Web アプリケーションを含むMVC アプリケーションがあります。さらに、私はWindows アプリケーションを持っています。これは、他の Windows アプリケーション プロジェクトでの Web アプリケーションの Windows 実行です。
Windows アプリケーションはMVC APIを使用し、resthelper クラスによって TfsApiController という名前で MVC Web アプリケーション コントローラーを呼び出します。
post メソッドを除くすべてのメソッドが機能しています。オブジェクトを tfsapi コントローラーに投稿したいと考えています。
残りのヘルパー クラスの post メソッド:
public void Post(T targetObject)
{
if (targetObject == null)
{
throw new System.ArgumentNullException("targetObject");
}
//Get formatting details.
System.Net.Http.Formatting.MediaTypeFormatter myFormatter = new XmlMediaTypeFormatter();
myUrlSuffix = "api/tfsapi";
//Make the call.
var result = this.MainHttpClient.PostAsync(myUrlSuffix, targetObject, myFormatter).Result.Content.ReadAsAsync<T>().Result;
}
私の TfsApiController メソッド:
public void PostPreActivity(PreActivity preActivity)
{
}
そしてルーティング:
RouteTable.Routes.MapHttpRoute(
name: "PostPreActivity",
routeTemplate: "api/tfsapi/Post",
defaults: new { id = RouteParameter.Optional }
).RouteHandler = new SessionRouteHandler();
私は多くの時間を無駄にしましたが、何が問題なのかわかりません。
アップデート:
これは私のすべてのルーティングです:
RouteTable.Routes.MapHttpRoute(
name: "GetWorkItemsByProject",
routeTemplate: "api/{controller}/{action}/{projectID}",
defaults: new { controller = "tfsapi", action = "GetWorkItems", projectID = UrlParameter.Optional }
).RouteHandler = new SessionRouteHandler();;
RouteTable.Routes.MapHttpRoute(
name: "ActionWebApiRoute",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
).RouteHandler = new SessionRouteHandler();
RouteTable.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
).RouteHandler = new SessionRouteHandler();