- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在 ASP .NET MVC5 中使用 WebApis 创建一个 SPA(单页应用程序)。对于 WebAPI,我使用的是属性路由。对于 Web API 以外的请求,我配置了一个映射到 Home Controller 和 Index 操作的 Catch-All 路由这是我的代码
我的 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);
}
}
}
我的WebApiConfig.Register方法如下
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 }
);
}
}
对于WebApis以外的路由,我注册了如下路由
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "CatchAll",
url: "{*url}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
现在在 StartUp 类的 Configuration 方法中,如果我取消注释这一行
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>
为什么会这样?可以保留此行注释吗?
最佳答案
您正在混合配置。 app.UseWebApi
主要用于 OWIN 管道而不是 MVC,因此当您使用该设置时,它会否定您的 MVC 配置,因为它会接管传入请求的检查。如果您混合使用 MVC 和 Web API,您可以安全地对该行进行注释。
关于c# - 使用 IAppBuilder.UseWebApi 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39746625/
我最近一直在开发一个具有 API 的 MVC 站点,在 startup.cs 中有一行内容为 app.UseWebApi。我做了一些搜索,但找不到关于它的作用的合适答案。有人可以为我解释这个概念吗?谢
我正在 ASP .NET MVC5 中使用 WebApis 创建一个 SPA(单页应用程序)。对于 WebAPI,我使用的是属性路由。对于 Web API 以外的请求,我配置了一个映射到 Home C
我有一个 Owin Startup 类,它注册了一个 WebApi Controller 操作并使用 IAppBuilder.UseWebApi 将其 Hook 。我的路由模板是 /api/packa
VS 2015 Update 3 已经发布,我已经开始使用它了。但我很快就遇到了问题。 IApplicationBuilder 接口(interface)似乎没有 UseWebApi 扩展方法的定义,
全世界都在使用 IAppBuilder 扩展 UseWebApi 和 asp.net web api。所有的博客示例都显示了这一点。 但是当我使用 VS 2015 RC 创建一个 web api 项目
我想继续在我的应用程序的 MVC 和 API 部分中使用相同的 cookie。我知道这不是很安全,但仍然如此。 如果我在 VS 中创建一个新的 MVC 项目,一切正常,Web API 是使用 Glob
我是一名优秀的程序员,十分优秀!