gpt4 book ai didi

c# - 确保 WebAPI2 路由在 MVC 路由之前匹配

转载 作者:太空狗 更新时间:2023-10-29 22:00:07 24 4
gpt4 key购买 nike

我有一个同时使用 MVC 和 WebAPI2 的 Web 应用程序。我希望请求在匹配手动配置的 MVC 路由之前始终与 WebAPI2 属性路由匹配。我尝试在调用 RouteConfig.RegisterRoutes(RouteTable.Routes) 之前调用 configuration.MapHttpAttributeRoutes() 但这似乎不起作用。

有什么方法可以确保 WebAPI2 路由始终具有优先权?

最佳答案

试一试。使用 VS 创建一个新的 Controller 。确保它被称为 someController,其中 some 是您的 Controller 的名称,它必须以“Controller”结尾。确保您的类继承了 ApiController...

public class someController : ApiController
{
[Route("api/test/{name}"), HttpGet]
public string Router(string name)
{
return "Your name is: " + name;
}
}

同时将其添加到您的 global.asax 文件中。

  protected void Application_Start(object sender, EventArgs e)
{
GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear(); //This will remove XML serialization and return everything in JSON.

GlobalConfiguration.Configuration.MapHttpAttributeRoutes();
GlobalConfiguration.Configuration.EnsureInitialized();
}

在上面,api 路由正在等待 HttpGet,你也可以使用 HttpPost,并使用 FormDataCollection 来获取发布的表单数据。请注意如何使用 {someparameter}

参数化 API

上面很简单,API Controller 可以序列化大部分实现序列化的对象。如果没有可以用NewtonSoft什么的。

关于c# - 确保 WebAPI2 路由在 MVC 路由之前匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41468930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com