我想在角度应用程序中使用$ 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,但是我想知道是否有任何正确的方法来实现这一点.
谢谢,山姆
我从@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) { ...