Linq to XML - SmarterMail API 响应 jQuery 数据表
Linq to XML - SmarterMail API response to jQuery dataTables
好的,四处寻找并尝试了所有可能的解决方案。所以,一定要简单一些。
我正在使用 SmarterMail API 来 return 邮件列表列表。我想在需要字符串数组列表的 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);
}
稍作改动,现在似乎可以使用了。对于需要 return 多列的情况,我也可以将其用作模型。
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);
}
好的,四处寻找并尝试了所有可能的解决方案。所以,一定要简单一些。
我正在使用 SmarterMail API 来 return 邮件列表列表。我想在需要字符串数组列表的 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);
}
稍作改动,现在似乎可以使用了。对于需要 return 多列的情况,我也可以将其用作模型。
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);
}