3

私は 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 が返されます。

4

2 に答える 2

4

現在、ASP.NET MVC は OWIN では実行されません。Web API は最近構築され、この種の柔軟性を念頭に置いて作成されたためSystem.Web、具体的には から切り離され、 HttpContextOWIN で実行できるようになりました。

OWIN で実行されるいくつかの代替手段は、FubuMVCNancy、およびSimple.Web です。

David Fowlerはこれについていくつかの作業を行い、OWIN で動作する MVC のプロトタイプをある程度動作させていますが、コードは公開されておらず、すぐに公開されるかどうかについても言及されていません。

于 2013-10-13T11:58:24.233 に答える