ASP .NET MVC5でWebApisを使用してSPA(Singe Page Application)を作成しています。 WebAPISの場合、属性ルーティングを使用しています。ウェブAPI以外のリクエストの場合、私はホームコントローラにマップし、indexアクション がここに私のコードIAppBuilder.UseWebApiを使用する場合の問題
でキャッチオールルートを設定している私は私のStartUp.csで次の構成コードを持って
using System.Web.Routing;
[assembly: OwinStartup(typeof(MyApp.Startup))]
namespace MyApp
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
GlobalConfiguration.Configure(WebApiConfig.Register);
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
//app.UseWebApi(GlobalConfiguration.Configuration);
}
}
}
を提出
WebApis以外の経路について
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
を次のようにマイWebApiConfig.Register方法であって、私は、次のルートが
が登録されており、私は app.UseWebApi(GlobalConfiguration.Configuration)
この行のコメントを解除し、任意の経路にアクセスしようとすると起動クラスでの設定方法では今
は、私が
<Error>
<Message>
No HTTP resource was found that matches the request URI 'http://localhost:17212/orders'.
</Message>
<MessageDetail>
No type was found that matches the controller named 'Home'.
</MessageDetail>
</Error>
なぜこれが起こるんこのエラーが出ますか?この行にコメントをつけても構いませんか?
asp.netコアへの移行を検討してください。 –
構成を混合しています。 'app.UseWebApi'は主にOWIN pipline(MVCではなく)ですので、この設定を使用すると、着信要求の検査を引き継ぐため、MVC設定が無効になります。 MVCとWeb APIの両方を混在させている場合は、その行をコメントにしておくことができます。 – Nkosi
これを回答として追加することができれば、回答としてマークすることができます – devanalyst