Sharepoint 2010 错误:";值不能为null。参数名称:formType";检索文档库的默认视图页

Sharepoint 2010 错误:";值不能为null。参数名称:formType";检索文档库的默认视图页,sharepoint-2010,sharepointdocumentlibrary,Sharepoint 2010,Sharepointdocumentlibrary,我正在尝试获取SP2010中标准文档库列表的默认视图url: var defaltViewUrl = documentLibrary.Forms[PAGETYPE.PAGE_DEFAULTVIEW].Url; 我经常遇到以下例外情况: ArgumentNullException: "Value cannot be null. Parameter name: formType" 而PAGETYPE.PAGE_DEFAULTVIEW枚举值绝对不为空。知道我做错了什么吗?列表的默认视图未存储在表单

我正在尝试获取SP2010中标准文档库列表的默认视图url:

var defaltViewUrl = documentLibrary.Forms[PAGETYPE.PAGE_DEFAULTVIEW].Url;
我经常遇到以下例外情况:

ArgumentNullException: "Value cannot be null. Parameter name: formType"

而PAGETYPE.PAGE_DEFAULTVIEW枚举值绝对不为空。知道我做错了什么吗?

列表的默认视图未存储在表单集合中(
SPList.Forms

因此,您确实必须获取
SPList.DefaultView.url的url

string absViewUrl = SPUrlUtility.CombineUrl(web.Url, documentLibrary.DefaultView.Url);

由于SharePoint正在将
PAGETYPE.PAGE\u DEFAULTVIEW
转换为字符串,因此发生
ArgumentNullException
。由于
PAGE\u DEFAULTVIEW
不是有效的表单,因此将其转换为
null

这可以正常工作:var defaultViewUrl=string.Format(“{0}/{1}”、documentLibrary.ParentWeb.Url、documentLibrary.DEFAULTVIEW.Url);但是上面的问题仍然是实际的。谢谢!你的解决方案很好用。我还检查了SPList.Forms属性仅返回PAGETYPE.PAGE\u DISPLAYFORM、PAGETYPE.PAGE\u EDITFORM和PAGETYPE.PAGE\u NEWFORM的表单,因此使用PAGETYPE enum为该道具编制索引似乎是一个错误的设计选择