让我们开始编码
这里我以一个基本的新闻应用程序为例
-
打开 SharePoint 开发人员站点并创建一个列表来存储我们的新闻文章
-
创建自定义列表并添加 3 个列 Body,Summery,ThumbnailImageUrl http://i.stack.imgur.com/mzfSL.jpg
-
返回我们的 SharePoint 应用程序,打开 AppManifest.xml 文件,单击权限选项卡并为网站集授予读取权限并保存。 http://i.stack.imgur.com/tJ5JI.jpg
-
从 Web 应用程序打开 HomeController,在我的例子中是一个 MVC 应用程序。如果你要创建一个 webform 应用程序,那么你的代码应该在 default.aspx.cs 页面中
-
以下是从列表中获取最新消息的代码段。这就是我们的索引页面应该如何。
[SharePointContextFilter] public ActionResult Index() { User spUser = null; var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext); List<NewsList> newsList = new List<NewsList>(); using (var clientContext = spContext.CreateUserClientContextForSPHost()) { if (clientContext != null) { spUser = clientContext.Web.CurrentUser; clientContext.Load(spUser, user => user.Title); clientContext.ExecuteQuery(); ViewBag.UserName = spUser.Title; List lst = clientContext.Web.Lists.GetByTitle("News"); CamlQuery queryNews = CamlQuery.CreateAllItemsQuery(10); ListItemCollection newsItems = lst.GetItems(queryNews); clientContext.Load(newsItems, includes => includes.Include(i => i.Id, i => i.DisplayName, i => i["ThumbnailImageUrl"], i => i["Summery"])); clientContext.ExecuteQuery(); if (newsItems != null) { foreach (var lstProductItem in newsItems) { newsList.Add( new NewsList { Id = Convert.ToInt32(lstProductItem.Id.ToString()), Title = lstProductItem.DisplayName.ToString(), Summery = lstProductItem["Summery"].ToString(), Thumbnail = lstProductItem["ThumbnailImageUrl"].ToString() }); } } } } return View(newsList); }
-
现在右键单击 Index 并单击 Add View。然后单击添加
http://i.stack.imgur.com/v8I6G.jpg
-
现在从 Views> Home 目录打开 Index.cshtml 文件 ****
-
下面是 index.cshtml 文件的代码片段
@model List<SharePointNewsAppWeb.Models.NewsList> @{ ViewBag.Title = "My News - browse latest news"; } <br /> @foreach (var item in Model) { <div class="row panel panel-default"> <div class="col-xs-3"> <a href="/home/aticle?ArticleId=@item.Id"> <img class="img-responsive" style="max-height:200px;max-width:100%;" src="@item.Thumbnail" alt="@item.Title" /> </a> </div> <div class="col-xs-9 panel-default"> <div class="panel-heading"> <h4><a href="/home/aticle?ArticleId=@item.Id">@item.Title.ToUpper()</a></h4> </div> <div class="panel-body"> <p>@item.Summery</p> </div> </div>
-
右键单击解决方案中的 Model 文件夹并添加 CS 类文件。添加以下模型类
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace SharePointNewsAppWeb.Models { public class NewsApp { } public class NewsList { public int Id { get; set; } public string Title { get; set; } public string Summery { get; set; } public string Thumbnail { get; set; } } public class FullArticle { public int Id { get; set; } public string Title { get; set; } public string Body { get; set; } } }
-
使用 F5 键部署和运行加载项。如果你看到安全警报窗口,要求你信任自签名的 Localhost 证书,请选择是。
现在第一个应用程序准备就绪