我正在使用基于 OWIN 的命令行 Self-Host 应用程序,新的属性路由非常适合我的 Web API 控制器。但是,它们似乎不适用于我的常规 MVC 控制器。
我已经尝试在我的 start 方法中使用路由模板以旧方式映射路由,并且我也尝试使用属性路由进行映射。无论哪种方式,当我尝试访问这些路线时都会得到 404。
在我的开始代码中,我调用了在 Owin.WebApiAppBuilderExtensions 类中定义的 IAppBuilder.UseWebApi(...) 扩展方法,但我没有看到 MVC 的等效方法,例如 UseMvc(...)。它们能共存吗?我错过了一些明显的东西吗?
这是我的开始代码:
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。