讓我們開始編碼

這裡我以一個基本的新聞應用程式為例

  1. 開啟 SharePoint 開發人員站點並建立一個列表來儲存我們的新聞文章

  2. 建立自定義列表並新增 3 個列 Body,Summery,ThumbnailImageUrl http://i.stack.imgur.com/mzfSL.jpg

  3. 返回我們的 SharePoint 應用程式,開啟 AppManifest.xml 檔案,單擊許可權選項卡併為網站集授予讀取許可權並儲存。 http://i.stack.imgur.com/tJ5JI.jpg

  4. 從 Web 應用程式開啟 HomeController,在我的例子中是一個 MVC 應用程式。如果你要建立一個 webform 應用程式,那麼你的程式碼應該在 default.aspx.cs 頁面中

  5. 以下是從列表中獲取最新訊息的程式碼段。這就是我們的索引頁面應該如何。

    [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);
    }
    
  6. 現在右鍵單擊 Index 並單擊 Add View。然後單擊新增

http://i.stack.imgur.com/v8I6G.jpg

  1. 現在從 Views> Home 目錄開啟 Index.cshtml 檔案 ****

  2. 下面是 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>
    
  3. 右鍵單擊解決方案中的 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; }
    
     }
    }
    
  4. 使用 F5 鍵部署和執行載入項。如果你看到安全警報視窗,要求你信任自簽名的 Localhost 證書,請選擇

現在第一個應用程式準備就緒