我一直在努力解决这个问题,我在互联网或论坛等上找不到任何有用的信息。
基本上我被要求将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();
}
答案 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之前。