2013-07-18 2 views
1

나는 변수 이름을 미리 알지 못하기 때문에 텍스트 파일에서 buildt 형식의 동적 빌드 형식을 가지고 있습니다.Deserialise json 양식 문자열

"PersonId=aasd&Gender=Kvinna&Education=sd&RelativeDementia=Ja&Apoe4=Vet+ej& 
SystolicBT=asd&HypertoniaTreatment=Nej&FPColesterol=asd&PersonLength=asdas 
&PersonWeight=dasd&PersonBMI=asd&AbdominalCircumference=adsasd 
&KnownDiabetesMellitus=Ja&HadTIAStroke=Ja 
&KnownHeartDisease=Ja 
&IsCurrentlySmoking=Ja&IsExperiencingStress=Nej 
&KnownDepression=Ja%2C+tidigare+behandlad&PhysicallyActive=Ja" 

이 방법 :

$(document).on("click", "#btnsubmit", function() { 
    $.ajax({ 
     url: "/Home/RiskScore", 
     type: "post", 
     data: { "testData": $("form").serialize() }, 
     success: function(result) { 
     } 

지금은 내가 각각의 값과 이름을 표시 할 수 있도록 그것을 직렬화하는 나는 형태와 JSON 문자열로 값을 직렬화 한 다음 페이지의 값. 나는 많은 다른 종류의 코드를 시도했지만 성공하지 못했다. 도움을 받으실 수 있기를 바랍니다. 당신은 이름 - 값 쌍으로 양식 값을 얻을 수 serializeArray 방법을 사용할 수 있습니다

감사

+0

'data : $ ("form"). serialize()는 다른 양식 데이터와 마찬가지로 사용할 수 있어야합니다. – adeneo

+0

http://stackoverflow.com/questions/6992585/jquery-deserialize-form – MiRaIT

+0

내가하는 경우 : $ (document) .on ("click", "#btnsubmit", function() { $ .ajax ({ URL : "/ 홈/RiskScore" 유형 : "POST", 데이터 :. $ ("양식") (직렬화), 성공 : 기능 (결과) { } 내 homecontroller –

답변

1

, 그것은 표준 URL 인코딩 된 표기법입니다. 서버 쪽에서 액세스하려는 경우 게시물 데이터를 반복 할 수 있습니다. ASP.NET은이 형식을 Request.Form 컬렉션으로 자동으로 구문 분석합니다.

당신이 testData 식별자를 원하지 않기 때문에 이것에 대한 이유는
data: $("form").serialize(), 

, 당신은 단지 data 속성으로 원시 POST 데이터를 원하는 :

foreach(string key in Request.Form.AllKeys) 
    Response.Write(Request.Form[key]); 

은 또한에 AJAX를 변경해야합니다.

+0

페이지에 널 보낸다 내 편집, 아약스 요청을 약간 변경해야합니다. – MrCode

+1

데이터를 변경하는 경우 : data : { "testData": $ ("form"). serialize()} : data : {$ ("form ") .serialize()}, 오류가 발생했습니다 : (: expected) –

+0

죄송합니다. 내 실수로 {}을 (를) 제거해야합니다. 내 편집을 참조하십시오 .... – MrCode

0

:

당신은 JSON 데이터 없어
var nameValues = $("form").serializeArray(); 
for(var i = 0; i < nameValues.length; i++){ 
    console.log(nameValues[i].name); 
    console.log(nameValues[i].value); 
}