2014-01-13 7 views
0

여러 개의 매개 변수를 ","로 구분하여 보낼 수 있다는 것을 알고 있지만 매개 변수의 수가 동적 인 경우 어떻게해야합니까? 아래 코드는 특정 양의 매개 변수에 대해 잘 작동합니다. 얼마나 많은 수의 매개 변수를 보낼 수 있습니까?javascript 함수에서 컨트롤러로 여러 매개 변수를 전달하는 방법

$.ajax({ 
      type: "POST", 
      url: 'Home/xxx',    
      data: { "FirstName": FirstName, "LastName": LastName,"InputNo3": InputNo3, "InputNo4": InputNo4, "InputNo5": InputNo5 } 
     }).done(function (msg) { 
      $(".popup").html(msg); 
      $(".background").show(); 
     }); 
+0

매개 변수가 모두 셀 수 있습니다 있습니까 http://www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx

백엔드 코드 - 여기 스콧의 블로그에 샘플입니다? 가능한 모든 변종을 알고 있다면 이러한 매개 변수를 사용하여 Model을 만들고 MVC 측에서 사용하십시오. –

+0

@ Sergey : 감사합니다. 예. DB에서 카운트를 얻을 수 있습니다. 나를 어떤 리소스로 리디렉션 할 수 있습니까? – AnandSonake

+0

배열은 확실히 갈 수있는 방법이지만이 매개 변수에는 유형이 다르므로 List 을 유용하게 사용하지 않아야합니다 –

답변

0

매개 변수가 동적이고 어떤 항목인지 알 수없는 경우 사전을 모델로 사용할 수 있습니다.

public ActionResult Blah(IDictionary<string, string> parameters) { 
    if (parameters.ContainsKey("FirstName")) 
    { 
     var firstNameValue = parameters["FirstName"]; 
     // do something with it 
    } 
} 

JavasScipt 코드 :

var objData = []; 
objData[0].Key = "FirstName"; 
objData[0].Value = FirstName; 
objData[1].Key = "LastName"; 
objData[1].Value = LastName; 
objData[2].Key = "InputNo3"; 
objData[2].Value = InputNo3Value; 
// populate other needed properties 


$.ajax({ 
    type: "POST", 
    url: 'Home/xxx',    
    data: objData 
}).done(function (msg) { 
    $(".popup").html(msg); 
    $(".background").show(); 
}); 
0

당신이 문자열, INT, 객체와 같은 다른 종류의 많은 매개 변수가있는 경우, 더 나은 당신은 object에 추가하고 보낼 수 있습니다.

var myComplextObject={}; 
myComplextObject.FirstName=''; 
myComplextObject.Age=27; 
myComplextObject.Address={}; 
myComplextObject.Address.City='Chennai'; 

//etc 
$.ajax({ 
     type: "POST", 
     url: 'Home/xxx',    
     data: myComplextObject 
    }).done(function (msg) { 
     $(".popup").html(msg); 
     $(".background").show(); 
    }); 
관련 문제