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);
}