2013-02-19 2 views
-1

jQuery validation engine을 MVC 프로젝트와 통합하여 인라인 유효성 검사를 수행하려고합니다. JSON 응답을 기대하고 MVC 컨트롤러를 호출하는 jQuery 양식 안에 필드가 있습니다. 플러그인의 저자에 의해 쓰여진 this article ... MVC 컨트롤러에서 JSON을 다음과 같은 형식으로 생성하는 방법은 무엇입니까?

지금이 정의 된 URL로 아약스에서 필드를 보내고, 에 대한 응답을 기다리는를 따르면, 응답이 구문 다음 JSON 으로 인코딩 배열해야 : [ "id1", 부울 상태].

PHP에서 이렇게 할 수 있습니다 : echo json_encode ($ arrayToJs);

ASP.NET MVC4에서이를 수행하는 방법은 무엇입니까?

현재 컨트롤러의 모양은 다음과 같습니다.

public JsonResult FunctionName(string fieldValue) 
{ 
     return Json((new { foo = "bar", baz = "Blech" }), JsonRequestBehavior.AllowGet); 
} 

응답 본문

{"foo":"bar","baz":"Blech"} 

은 어떻게 예상되는 형식으로 JSON을 반환 할 수는 다음과 같이 키 값 쌍을 반환하는 것을 보여줍니다?

+0

'[ "ID1", 부울 상태]'유효 JSON하지

은이 문서를 참조하십시오. '[ "id1", "boolean status"]'는 유효한 JSON이 될 것입니다. '{ "foo": "bar", "baz": "Blech"}'가 뭘 원하는지는 명확하지 않습니다. – Pete

+0

명확히하기 위해 맨 위에 표시되는 것은 JSON 배열 (유효하지 않은 배열)입니다. 맨 아래에 표시되는 것은 JSON 객체입니다. – Pete

+0

잘못된 JSON 형식은 기사에서 직접 인용됩니다. 기사에 따르면 배열을 반환하는 컨트롤러가 필요합니다. –

답변

2

대괄호는 JSON 객체 내의 배열을 나타냅니다. http://www.w3schools.com/json/json_syntax.asp

이 테스트 코드 :

return Json(new object[] { "id1", false }, JsonRequestBehavior.AllowGet); 

가 반환해야합니다 :

["id1",false] 
+0

매력처럼 작동했습니다! 감사합니다 롭! –

+0

기꺼이 도와 드리겠습니다! – Rob

0

json 내에서 배열을 반환하려면 여기를 클릭하십시오. 그런 다음 사전을 반환 할 수 있습니다. 전달중인 익명 형식 때문에 json 출력에 배열이 표시되지 않는 것은 두 가지 주요 값입니다.

public JsonResult MyMethodName(string name) 
{ 
    IDictionary<string, bool> myDict = LoadDictionaryFromSomewhere(); 
    return Json(myDict, JsonRequestBehaviour.AllowGet); 
} 
+0

JSON 배열을 반환하고 싶습니다. 다른 소스에서 사전을로드하고 싶지 않습니다. –

+0

@ user2048857 사전이 될 것입니다 .Json 배열이므로 json 배열을 반환 할 것입니다. 또한 예제와 다른 유효한 json을 출력합니다. – gdp

+0

글쎄요. 너무 나쁘다는 것은 도움이되지 못했습니다.또한 * 당신은 –

관련 문제