0
좋아, 어디서나 보였고 가능한 모든 해결책과 같은 느낌을주었습니다. 그래서, 그것은 단순해야합니다.Linq to XML - SmarterMail jQuery dataTables에 대한 API 응답
나는 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);
}