2017-10-19 8 views
-2
나는 JQuery와 아약스를 통해 문자열과 .NET 프레임 워크의 목록을 가져오고 UI에 제대로 표시하기 위해 애 쓰고 우는 코드에서

:JQuery와 표시 목록 .NET MVC

jQuery 코드 :

$.get("/TargetGroups/GetExistingJobTitles") 
     .done(function (data) { 
      //code to display properties?? 
     }); 

는 C# 코드 : 참으로 디버깅하는 동안

[HttpGet] 
public IEnumerable<string> GetExistingJobTitles() 
{ 
    var foundData = _targetGroupsRepo.GetJobTitles(); 
    return foundData; 
} 

, 나는 문자열의 목록을 에스. JQuery가 반환 된 목록을 확장하여 UI에 표시 할 수있는 방법은 제 지식이 아닙니다.

도움이되었습니다.

+0

그것은해야 때

이것은 코드입니다 배열을 반환하면, JS가 데이터를 보여주기 위해 가지고있는 루핑 메커니즘을 사용할 수있다. for(), forEach() 등 ... –

+0

매개 변수 '데이터'형식에 따라 달라집니다. '데이터 '필드와 직면 한 정확한 문제를 게시하십시오. –

+0

@KhatamNaayak 설명 된대로 반환 된 데이터는 문자열 목록입니다.내 문제는이 목록의 각 값에 액세스하여 UI에 표시하는 방법입니다. 고맙습니다. – George

답변

1

컨트롤러 코드

[HttpGet] 
public JsonResult GetExistingJobTitles() 
{ 
var foundData = _targetGroupsRepo.GetJobTitles(); 
return Json(foundData,JsonRequestBehavior.AllowGet); 
} 

jQuery를

$.get("@Url.Action("GetExistingJobTitles")") 
.done(function (data) { 
var ulJobTitles = $("#ulJobTitles"); 
$.each(data, function() { 
ulJobTitles.append($("<li></li>").text(this)) 
} 
}); 

JQuery와 코드가 난 단지 JSON을 사용하는 것과 같이, 실제 방법으로 작동합니다. u는 문자열 대신 개체를 전달하려면 foundData 개체

[HttpGet] 
public JsonResult GetExistingJobTitles() 
{ 
var foundData = _targetGroupsRepo.GetJobTitles(); 
var returnObj = foundData.Select(x => new 
{ 
value = x.Id, 
text = x.Name 
}).ToList(); 
return Json(returnObj ,JsonRequestBehavior.AllowGet); 
} 

의 목록 JQuery와

$.get("@Url.Action("GetExistingJobTitles")") 
.done(function (data) { 
var selectJobTitles = $("#ulJobTitles"); 
$.each(data, function() { 
selectJobTitles.append($("<option></option>").attr("value", 
this[value]).text(this[text])) 
} 
}); 
+1

Diogenh eyxaristw – George

1

귀하의 자바 스크립트/jQuery 코드가 서로 다른 두 시스템에서 실행되고 있습니다. 데이터가 한 시스템에서 다른 시스템으로 전달되는 방식에 대해 논의하는 것은 폭 넓은 주제이며 분명히 그 시스템에 관심이 없습니다. 다음은 이해해야 할 사실을 이해하도록하기위한 약간의 노력입니다.

C# .Net인지 여부에 관계없이 모든 서버 측 응용 프로그램에서 데이터가 바이트로 전송됩니다. 클라이언트/브라우저 측의 JS 코드가 해당 코드를 받으면 MIME 유형에 따라 처리하고 그에 따라 작동합니다. 귀하의 경우 : 귀하의 응용 프로그램은 일반 텍스트 데이터 (String)를 브라우저에 반환하고 JS 코드는 귀하가 코딩 한 방식으로 해석하거나 이에 따라 행동하게됩니다. 당신이하는 일은 당신에게 달려 있습니다.

일반 텍스트 데이터는 JS 환경의 문자열이기도합니다. 이제 수신 된 데이터를 원하는 형식으로 구문 분석해야합니다. 선호되는 방법은 웹 애플리케이션의 데이터를 JSON으로 브라우저 또는 자바 스크립트 환경으로 보내고 JSON 파싱 메소드를 호출하여 원하는 형식으로 데이터를 가져 오는 것입니다. 그래서, 만약 당신이 웹 응용 프로그램에서 배열을 받고 싶다면 JSON 문자열을 만들거나 프레임 워크가 그렇게하도록하십시오. 수신 측에서는 json을 구문 분석하고 배열을 반복하여 HTML 목록을 작성합니다.

귀하의 이해가 충분한지 알려주십시오.

+0

나는 당신의 제안을 구현할 것입니다. 자세한 답변 해 주셔서 감사합니다. – George