0
好吧,無處不在,試着感受每種可能的解決方案。所以,這一定很簡單。Linq to XML - SmarterMail API對jQuery數據表的響應
我正在使用SmarterMail API返回郵件列表的列表。我想在一個jQuery DataTable中顯示結果,它需要一個字符串數組列表。我怎樣才能把我的結果列表的字符串,並將其轉換爲字符串數組列表?下面的代碼幾乎可以工作,但是最終只有每個郵件列表名稱的第一個字母。
使用.NET C#MVC。這是來自我的控制器的方法。
public ActionResult getMailingLists(jQueryDataTableParamModel param)
{
svcMailListAdmin.PreInvoke();
svcMailListAdmin.AddParameter("AuthUserName", SM_AuthUserName);
svcMailListAdmin.AddParameter("AuthPassword", SM_AuthPassword);
svcMailListAdmin.AddParameter("DomainName", SM_DomainName);
svcMailListAdmin.Invoke("GetMailingListsByDomain");
svcMailListAdmin.PostInvoke();
var resultXML = svcMailListAdmin.ResultXML;
var resultList = resultXML.Root.Elements("listNames")
.Elements("string")
.OrderBy(i => (string)i)
.Select(i => (string)i)
.ToList();
return Json(new
{
sEcho = param.sEcho,
iTotalRecords = resultList.Count,
iTotalDisplayRecords = resultList.Count,
aaData = resultList
},
JsonRequestBehavior.AllowGet);
}
修訂1:
做了一個輕微的變化,現在它似乎工作。我也可以將它用作需要返回多個列的情況的模型。
public ActionResult getMailingLists(jQueryDataTableParamModel param)
{
svcMailListAdmin.PreInvoke();
svcMailListAdmin.AddParameter("AuthUserName", SM_AuthUserName);
svcMailListAdmin.AddParameter("AuthPassword", SM_AuthPassword);
svcMailListAdmin.AddParameter("DomainName", SM_DomainName);
svcMailListAdmin.Invoke("GetMailingListsByDomain");
svcMailListAdmin.PostInvoke();
var resultXML = svcMailListAdmin.ResultXML;
var resultsList = resultXML.Root.Elements("listNames")
.Elements("string")
.Select(i => new List<string>()
{
(string)i
}).ToList();
return Json(new
{
sEcho = param.sEcho,
iTotalRecords = resultsList.Count,
iTotalDisplayRecords = resultsList.Count,
aaData = resultsList
},
JsonRequestBehavior.AllowGet);
}