小编Dyl*_*anB的帖子

返回null而不是控制器中设置的值时,Modelbinder默认为0

我有一个自定义模型绑定器,用于REST API,如下所示:

public class CustomQueryModelBinder : IModelBinder
{
    public Task<ModelBindingResult> BindModelAsync(ModelBindingContext bindingContext)
    {
      if (!String.IsNullOrWhiteSpace(bindingContext.ModelName) && bindingContext.ModelType == typeof(short) && bindingContext.ValueProvider.GetValue(bindingContext.ModelName) != null)
        {
            short value;
            var val = bindingContext.ValueProvider.GetValue(bindingContext.ModelName).FirstValue as string;

            if (String.IsNullOrWhiteSpace(val))
            {
                return ModelBindingResult.SuccessAsync(bindingContext.ModelName, val);
            }
            else if (Int16.TryParse(val, out value) && value >= 0)
            {
                return ModelBindingResult.SuccessAsync(bindingContext.ModelName, value);
            }
            else
            {
                bindingContext.ModelState.AddModelError(bindingContext.ModelName, "The value is invalid.");
            }
        }

        return ModelBindingResult.FailedAsync(bindingContext.ModelName);
    }
}
Run Code Online (Sandbox Code Playgroud)

并且在URI中未指定自定义值的情况下,它应默认为有效值(大于0),但它始终默认为0,即使控制器如下所示:

public async Task<IActionResult> GetAsync(
        [ModelBinder(BinderType = typeof(CustomQueryModelBinder))]short value = …
Run Code Online (Sandbox Code Playgroud)

asp.net-core-mvc dnx asp.net-core

7
推荐指数
1
解决办法
264
查看次数

使用VSTS Api获取提交列表时如何返回完整注释?

我有一个脚本使用VSTS api生成两个不同版本之间的提交日志,但是来自VSTS api的响应将注释返回为截断.对于我的目的,这是日志中最重要的部分,因此希望从api中完整地收到评论.

回复如下:

truncatedComments

我显然可以遍历每个提交ID并通过为每个ID调用api来获取完整的注释,但是由于这个脚本将成为我们发布过程的一部分,我希望它尽可能快,所有这些额外的调用将会为脚本添加不必要的时间.

从我所看到的,在获取提交列表时无法获得完整的评论,但我希望有人可以帮我这个?

谢谢

azure-pipelines-release-pipeline azure-devops-rest-api

7
推荐指数
1
解决办法
360
查看次数