c# - 查询字符串的属性路由

标签 c# .net asp.net-web-api asp.net-web-api-routing

我有以下路由 URL:-

www.domanname.com/subroute/GetInfo?param1=somestring&param2=somestring

我在 webapi 中的功能是:-

public class HomeController : ApiController
{
    public object GetInfo(string param1,string param2)
    {}
}

申请路线:-

[RoutePrefix("subroute")]
public class HomeController : ApiController
{
    [Route("GetInfo?param1={param1:string}&param2={param2:string}")]
    public object GetInfo(string param1,string param2)
    {}
}

但是在应用上面的 URL 之后:-

www.domanname.com/subroute/GetInfo?param1=somestring&param2=somestring

无法找到该 URL

我该如何设计这条特定的路线?

最佳答案

您需要稍微修改一下路由,因为查询字符串通常不用于属性路由。它们往往用于内联路由参数。

[RoutePrefix("subroute")]
public class HomeController : ApiController {
    //Matches GET subroute/GetInfo?param1=somestring&param2=somestring
    [HttpGet]
    [Route("GetInfo")]
    public IHttpActionResult GetInfo(string param1, string param2) {
        //...
    }
}

还有

Enabling Attribute Routing

To enable attribute routing, call MapHttpAttributeRoutes during configuration. This extension method is defined in the System.Web.Http.HttpConfigurationExtensions class.

using System.Web.Http;

namespace WebApplication
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // Web API routes
            config.MapHttpAttributeRoutes();

            // Other Web API configuration not shown.
        }
    }
}

引用 Attribute Routing in ASP.NET Web API 2

关于c# - 查询字符串的属性路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50329619/

相关文章:

c# - 实现接口(interface)

c# - 在 ASP.Net/SignalR 环境中使用 System.Threading.Timer 的风险

.net - Shersoft 和 ActiveListBar 控件发生了什么?

c# - 在 C# .NET 中将两个(或更多)列表合并为一个

python - 如何更改连续 webAPI 调用的一个 XML 标记的内容?

c# - Asp.Net Microsoft Identity 和 OAuth 和 OpenId

c# - 根据随机接收的位置坐标计算速度

.net - 在 F# 中对序列进行类型测试,一般相等性测试

c# - 如何使用 LINQ 搜索子 JSON

c# - 在 UserControl 中使用泛型类型的正确方法是什么?