web api支持参数,而他们没有参数

时间:2016-10-12 06:15:31

标签: asp.net-web-api

http://localhost:xxxx/api/BindAppointmentResources  对我来说工作得很好但是当我试图在控制器之后添加任何无效对象时(在#URL中使用这个?" http://localhost:xxxxx/api/BindAppointmentResources?Userid")会得到相同的结果

我尝试了基于动作的路由,属性路由到目前为止但结果相同?

PS:我在WEB API中没有参数

路线配置:

        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
}

}

1 个答案:

答案 0 :(得分:0)

查询字符串参数将自动绑定到web api中具有相同名称的参数。 如果没有找到参数名称,它会将请求路由到基本URL(这是问号前面的URL)。

所以这个网址

http://localhost:xxxx/api/BindAppointmentResources?UserID=1
如果找不到与UserID匹配的参数名称的方法,

将最终路由到

http://localhost:xxxx/api/BindAppointmentResources

在Get方法中,您仍然可以获取查询字符串

var queryString = this.Request.GetQueryNameValuePairs();

要防止查询字符串中的绑定参数并且仅允许来自路由值的绑定,可以从默认的HttpConfiguration配置中删除默认的QueryStringValueProviderFactory。在此article

中详细了解相关信息