私は OWIN ベースのコマンド ライン セルフ ホスト アプリを使用しており、新しい属性ルートは Web API コントローラーに最適です。ただし、通常の MVC コントローラーでは機能しないようです。
start メソッドでルート テンプレートを使用して古い方法でルートをマッピングしようとしました。また、属性ルートを使用してそれを実行しようとしました。いずれにせよ、これらのルートにアクセスしようとすると 404 が返されます。
私の開始コードでは、Owin.WebApiAppBuilderExtensions クラスで定義された IAppBuilder.UseWebApi(...) 拡張メソッドを呼び出しますが、UseMvc(...) のような MVC に相当するものは見当たりませんでした。それらは共存できますか?明らかな何かが欠けていますか?
これが私の開始コードです:
var config = new HttpConfiguration();
config.SuppressDefaultHostAuthentication();
config.Filters.Add(new HostAuthenticationFilter(Startup.OAuthOptions.AuthenticationType));
config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
config.MapHttpAttributeRoutes();
app.UseCookieAuthentication(CookieOptions);
app.UseExternalSignInCookie(CookieAuthenticationDefaults.ExternalAuthenticationType);
app.UseOAuthBearerTokens(OAuthOptions, ExternalOAuthAuthenticationType);
app.UseFacebookAuthentication(appId: "12345", appSecret: "abcdef");
app.UseWebApi(config);
そして、これが私の単純な古い MVC クラスです。
[RoutePrefix("Home")]
public class HomeController : Controller
{
[HttpGet("Index")]
public ActionResult Index()
{
return Content("Hello world!", "text/plain");
}
}
/Home/Index
アプリを起動すると、404 が返されます。