7

我將通過查詢字符串從FindFolders查詢中檢索到的文件夾的Folder.Id.UniqueId屬性傳遞給另一個頁面。在這第二頁我想使用UniqueId綁定到該文件夾​​列出其郵件:Folder.Bind - 「Id is malformed」 - Exchange Web Services託管API

string parentFolderId = Request.QueryString["id"]; 
... 
Folder parentFolder = Folder.Bind(exchangeService, parentFolderId); 
// do something with parent folder 

當我運行這段代碼,它拋出一個異常,告訴我該標識的格式不正確。我想也許它需要包裝在FolderId對象中:

Folder parentFolder = Folder.Bind(exchangeService, new FolderId(parentFolderId)); 

同樣的問題。

我一直在尋找一段時間,並且發現了一些關於Base64/UTF8轉換的建議,但是又一次沒有解決問題。

任何人都知道如何綁定到具有給定唯一ID的文件夾?

回答

0

是否正確地形成了parentFolderId值,或者當您嘗試實例化文件夾對象時,它是否會引起抖動?您是否在將id作爲查詢字符串傳遞之前執行了HttpUtility.UrlEncode(不要忘記之後再執行HttpUtility.UrlDecode)

0

您需要確保id已正確編碼。這是一個例子。

型號:

public class FolderViewModel 
{ 
    public string Id { get; set; } 
} 

控制器:

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     ExchangeService service = new ExchangeService(); 
     service.Credentials = new NetworkCredential("username", "pwd", "domain"); 
     service.AutodiscoverUrl("[email protected]"); 

     // Get all folders in the Inbox 
     IEnumerable<FolderViewModel> model = service 
      .FindFolders(WellKnownFolderName.Inbox, new FolderView(int.MaxValue)) 
      .Select(folder => new FolderViewModel { Id = folder.Id.UniqueId }); 

     return View(model); 
    } 

    public ActionResult Bind(string id) 
    { 
     Folder folder = Folder.Bind(service, new FolderId(id)); 
     // TODO: Do something with the selected folder 

     return View(); 
    } 
} 

和索引視圖:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<SomeNs.Models.FolderViewModel>>" %> 

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 

<% foreach (var folder in Model) { %> 
    <%: Html.ActionLink(Model.Id, "Bind", new { id = Model.Id }) %> 
<% } %> 

</asp:Content> 
7

我有一個類似的問題和使用進行urlencode/urldecode以確保IDS是格式正確。但是其中一個用戶有消息會導致錯誤。

事實證明,某些ID在其中有一個+符號,導致解碼時出現空格。 「'+'的簡單替換取得了訣竅。

可能是問題所在。

我知道很久以前問過這個問題了,但這可能對未來的其他人有所幫助。

相關問題