2013-06-18 3 views
0

AJAX를 사용하여 컨트롤러에 여러 매개 변수를 게시 할 때 몇 가지 문제가 있습니다. 모델 목록 및 버튼 이름 (문자열)을 내 컨트롤러로 전달하고 싶습니다.

jQuery를 :

function PostForm(buttonname) { 

    $.ajax({ 
     url: "/ControllerName/ViewName", 
     type: "POST", 
     dataType: "application/JSON", 
     data: 
     JSON.stringify({ 
      listOfObjects = $('#form').serialize(), 
      button : buttonname 
     }) 
    }); 
}; 

이 부분보기 :

<input name="buttonname" value="Name" onClick="PostForm('Name')" /> 

컨트롤러 : 버튼의 클릭에

[HttpPost] 
public ActionResult ViewName(List<MyObject> listOfObjects ,string button) 
{ 
//Obj should now contain the list of objects and button name 
} 

, 난하고 ListObjects의 버튼 이름 값 만 수를 얻고있다

입니다 0.

다른 데이터 유형을 가진 여러 매개 변수를 MVC 메소드에 전달하는 방법은 무엇입니까?

아이디어와 제안을 매우 높이 평가했습니다. 감사합니다.

+0

#form과 MyObject를 표시 할 수 있습니다. 어떤 쿼리를 보내고 여기에 게시 하시겠습니까? –

답변

4

나는 해결책을 얻었다.

function PostForm(buttonname) { 

var data = $('#form').serialize(); 
var finaldata = data + "&buttonclicked="+buttonname; 

$.ajax({ 
    url: "/ControllerName/ViewName", 
    type: "POST", 
    data: finaldata , 
    success: success function(){}, 
    error : error function(){} 
    }); 
}; 

부분보기 :

<input name="buttonname" value="Name" onClick="PostForm('Name')" /> 

컨트롤러 :

[HttpPost] 문제가 나는 POST의 버튼 이름 입력 paramtere 대해 동일한 이름을 사용 하였다

public ActionResult ViewName(List<MyObject> listOfObjects ,string buttonclicked) 
{ 
//Obj should now contain the list of objects and button name 
} 

버튼의 이름 목록을 가져 오는 이유는 무엇입니까? Neways가 작동 중입니다.

감사합니다.

0

함수 PostForm (BUTTONNAME) {

$.ajax({ 
    url: "/ControllerName/ViewName", 
    type: "POST", 
    dataType: "application/JSON", 
    data: JSON.stringify($('#form').serialize()) 
}); 

};

[HttpPost] 
public ActionResult ViewName(FormCollection formCollection) 
{ 
    // use formCollection["yourcontrol"] to get your post value 
} 
+0

나는 button.so를 포함하는 격자를 가지고 있는데, formcollection []을 사용하여 post 값을 찾을 수 없을 것이다. –

0

이 시도 :

보기 :

function PostForm(buttonname) { 

    $.ajax({ 
     url: "/ControllerName/ViewName", 
     type: "POST", 
     dataType: "application/JSON", 
     data: { listOfObjects: data: $('#Form').serilize(), button: buttonname }, 
     JSON.stringify({ 
      listOfObjects = $('#form').serialize(), 
      button : buttonname 
     }) 
    }); 
}; 

컨트롤러 :

[HttpPost] 
public ActionResult ViewName(MyObject[] listOfObjects ,string button) 
{ 

} 
+0

m 구문 오류가 발생합니다. –

0

form.serialize()가 단독으로 작동합니다. 추가 데이터가 있으면 작동하지 않습니다. dataType를 제거하고이 같은 시도 :

data: $('#Form').serilize() + "&button=" + buttonname 

그것이 도움이되기를 바랍니다.

+0

두 값을 모두 가져 오지 못했습니다. –

+0

죄송합니다 ... 저는 버튼의 이름과 같은 이름을 사용하고있었습니다.지금 값을 얻는 중입니다. –

관련 문제