Asp.net web api 为什么可以';我不能将这个Web Api参数绑定到查询字符串吗?
我有一个控制器动作如下:Asp.net web api 为什么可以';我不能将这个Web Api参数绑定到查询字符串吗?,asp.net-web-api,model-binding,optional-parameters,query-parameters,Asp.net Web Api,Model Binding,Optional Parameters,Query Parameters,我有一个控制器动作如下: public async Task<HttpResponseMessage> Put( [FromUri] ResourceSpec resource, //ValidationType? validationType, CreateResourceRequest body) public enum ValidationType { name = 1, } 并尝试了 [FromUri] Valida
public async Task<HttpResponseMessage> Put(
[FromUri] ResourceSpec resource,
//ValidationType? validationType,
CreateResourceRequest body)
public enum ValidationType
{
name = 1,
}
并尝试了
[FromUri] ValidationType? validationType,
变异。请告诉我为什么这不起作用
更新:好的,我得到它的路线,但不是参数绑定。如果我引入一个新的“无”枚举成员
defaults: new { controller = "Resource", validationType = ValidationType.none }
然后我的行动将被调用。但它将始终获得参数值ValidationType.none,即使我的查询字符串具有?validating=name
![FromUri]仍然没有什么区别。有什么好处?嗯。。。
实际上,我把参数的名称搞错了。我混淆了“验证”和“验证类型”。多么尴尬。现在无法验证,但我认为您还需要ValidationType上的FromUri属性。PUT的默认值是绑定到请求主体,而不是URI。只有GET绑定到URI,因为没有主体。查询字符串是tje uri的一部分。我尝试过使用[FromUri],但没有任何区别。我也尝试过GET,它似乎和PUT有同样的问题。
defaults: new { controller = "Resource", validationType = ValidationType.none }