2013-02-05 65 views
1

我试图在网页上显示故事列表(分层需求)和来自Rally的缺陷。Rally Rest Api - DynamicJsonObject如何检查密钥是否存在

我们在我们的缺陷上有一个名为“InfraID”的自定义字段,但不符合我们的等级要求。有没有一种方法来检测每个DynamicJsonObject是否有一个名为“InfraId”的键以避免抛出异常?

我试过TryGetValue,包含HasKey认为它被视为字典,但我不断收到KeyNotFoundException。 “给定的键没有出现在字典中”

这是在Razor ASP.NET MVC视图中使用。

@if (story.HasKey("InfraID")) 
    { 
     <td>@story["InfraID"]; 
     </td> 
    } 

所以我想不通哪些if语句可以避免抛出异常。故事是Rally.RestAPI.DynamicJsonObject类型。

我试图使用相同的html,无论它是一个缺陷还是一个故事,因为一切都工作正常。只是因为它是缺陷的自定义属性。

在情况下,它可以帮助似乎有关堆栈跟踪是:

at System.Collections.Generic.Dictionary`2.get_Item(TKey key) 
    at Rally.RestApi.DynamicJsonObject.GetMember(String name) 
    at Rally.RestApi.DynamicJsonObject.TryGetMember(GetMemberBinder binder, Object& result) 

所以我希望这并不意味着我不能在我的前端代码检查其存在。

回答

2

尝试HasMember

bool hasInfraId = story.HasMember("InfraID");

你可以找到完整的API文档的方法/命名空间Rally.RestApi.DynamicJsonObject出在开发人员门户网站在这里:

Rally REST API .NET Namespace

+0

这万分感谢。将该链接添加到我的书签拉力赛页面:) – Jen

相关问题