Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用nSwag生成TypeScript代理:对可为Null的int进行Null检查_C#_Typescript_Nswag - Fatal编程技术网

C# 使用nSwag生成TypeScript代理:对可为Null的int进行Null检查

C# 使用nSwag生成TypeScript代理:对可为Null的int进行Null检查,c#,typescript,nswag,C#,Typescript,Nswag,我们使用.net核心WebAPI后端,并使用nSwag生成用于前端的TypeScript代理。这是后端/C#代码: 以及控制器方法 [Route("SaveEditedDto")] [HttpPost] public EditResultDto SaveEditedDto(MyDto dto) 为“save”方法生成的TypeScript如下所示: saveEditedDto(id: number | undefined, otherObject:

我们使用.net核心WebAPI后端,并使用nSwag生成用于前端的TypeScript代理。这是后端/C#代码:

以及控制器方法

    [Route("SaveEditedDto")]
    [HttpPost]
    public EditResultDto SaveEditedDto(MyDto dto)
为“save”方法生成的TypeScript如下所示:

saveEditedDto(id: number | undefined, otherObject: number | undefined): Observable<EditResultDto> {
    let url_ = this.baseUrl + "/api/MyDomain/SaveEditedDto?";
    if (oid === null)
        throw new Error("The parameter 'oid' cannot be null.");
    else if (oid !== undefined)
        url_ += "Oid=" + encodeURIComponent("" + oid) + "&";
    if (otherObject === null)
        throw new Error("The parameter 'otherObject' cannot be null.");
    else if (otherObject !== undefined)
        url_ += "OtherObject=" + encodeURIComponent("" + otherObject) + "&";
    url_ = url_.replace(/[?&]$/, "");
saveEditedTo(id:number |未定义,otherObject:number |未定义):可观察{
让url=this.baseUrl+“/api/MyDomain/saveEditedTo?”;
如果(oid==null)
抛出新错误(“参数“oid”不能为空。”);
else if(oid!==未定义)
url+=“Oid=“+encodeURIComponent”(“+Oid)+”&”;
如果(其他对象===null)
抛出新错误(“参数“otherObject”不能为空。”);
else if(其他对象!==未定义)
url+=“OtherObject=“+encodeURIComponent”(“+OtherObject)+”&”;
url=url。替换(/[?&]$/,“”);
关于这一点,我实际上有两个问题:

  • 为什么对OtherObject参数进行空检查?我觉得这没有任何意义,因为DTO中的字段可以为空
  • 更重要的是:如何让nSwag不将空签入?

  • 我相信,您想要实现的不是摆脱空检查本身,而是避开它。在我看来,它就像nswag生成的代码。这里清楚地描述了它:

    else if (oid !== undefined)
            url_ += "Oid=" + encodeURIComponent("" + oid) + "&";
    

    您可能需要做的就是将未定义的而不是null作为参数
    oid
    otherObject
    传递

    这个提示是由创造者自己给出的,在这里也是如此:

    else if (oid !== undefined)
            url_ += "Oid=" + encodeURIComponent("" + oid) + "&";
    
    else if (otherObject !== undefined)else if (otherObject !== undefined)
            url_ += "OtherObject=" + encodeURIComponent("" + otherObject) + "&";