在MVC页面上显示SharePoint 2010文档库的内容

时间:2012-12-07 14:00:37

标签: asp.net-mvc sharepoint sharepoint-2010 sharepointdocumentlibrary

我一直在努力解决这个问题,我在互联网或论坛等上找不到任何有用的信息。

基本上我被要求将SharePoint 2010文档库的内容输出到标准的MVC网页上。

这是我的代码:

public class HomeController : Controller
{
  public ActionResult Index()
  {
    using (ClientContext site = new ClientContext("Http://MySPSite"))
    {
      List list = site.Web.Lists.GetByTitle("MyList");    
      site.Load(list);
      site.ExecuteQuery();
    }

    return View();
}

1 个答案:

答案 0 :(得分:1)

我设法提取了我想要使用以下

的列表项目
public ActionResult Index()
        {
            ViewData["Message"] = "Welcome to ASP.NET MVC!";
            List<string> documentTitles = new List<string>();
            using (ClientContext context = new ClientContext("http://siteurl"))
            {
                List list = context.Web.Lists.GetByTitle("doctest");
                context.Load(list);
                CamlQuery query = new CamlQuery();
                query.ViewXml = "<View/>";
                ListItemCollection listItems  = list.GetItems(query);
                context.Load(list);
                context.Load(listItems);
                //context.Load(listItems ,items => items.Include(
                //    item=>item["FileLeafRef"] 
                //    ));
                context.ExecuteQuery();
                foreach (ListItem item in listItems )
                {                    
                    documentTitles.Add(item["FileLeafRef"].ToString());
                }
            }
            return View(documentTitles);
        }

FileLeafRef是“名称”列的内部名称。

我注释掉了包含FileLeafRef,因为它默认包含在内,但您可能需要它用于其他列。

这也需要在.NET 3.5中完成,因为您使用的是客户端库。

您需要使用您想要的数据填充对象并将其传递给视图(如果您不知道这一点,您应该查看一些mvc示例。从您的示例中我无法判断您是否了解mvc或不是或者您只是发布代码来演示SharePoint问题)

您可能还需要设置上下文创意

context.Credentials = new NetworkCredentials("Username", "Password", "Domain");

在调用execute之前。