当前位置:  开发笔记 > 编程语言 > 正文

带有null参数的$ http.get未访问Web API控制器

如何解决《带有null参数的$http.get未访问WebAPI控制器》经验,为你挑选了1个好方法。

我想在角度应用程序中使用$ http.get尝试使用Web API GET控制器,如下所示:

$http.get(BasePath + '/api/documentapi/GetDocuments/' , 
                                {
                                    params: {
                                        PrimaryID: ID1,
                                        AlternateID: ID2,                                            
                                    }
                                }).then( ...

在我的情况下,PrimaryID或AlternateID将具有该值.因此,其中一个将始终为null.

我的Web api方法是

public DocumentsDto[] GetDocuments(decimal? PrimaryID, decimal? AlternateID)
    { ...

当其中一个值为null时,$ http.get生成的url如下所示:

http://BaseServerPath/api/documentapi/GetDocuments/?PrimaryID=1688 

要么

 http://BaseServerPath/api/documentapi/GetDocuments/?AlternateID=154

这没有达到我的Web API方法.

但是,如果我使用

http://BaseServerPath/api/documentapi/GetDocuments/?PrimaryID=1688&AlternateID=null

有用.我可以在我的参数中将值硬编码为null,但是我想知道是否有任何正确的方法来实现这一点.

谢谢,山姆



1> sam113..:

我从@RobJ得到了正确答案.他发布了答案的链接.我也在这里粘贴相同的答案.解决方案是具有Web API参数的默认值.

public string GetFindBooks(string author="", string title="", string isbn="", string  somethingelse="", DateTime? date= null) 
{
    // ...
}

在我的情况下,它将是

public DocumentsDto[] GetDocuments(decimal? PrimaryID = null, decimal? AlternateID = null)
{ ...

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有