2012-05-18 4 views
0

나는 간단한 MVC보기에 다음 코드를했다 :MVC 아약스 호출로 - 컨트롤러 메소드에 객체를 전달하지

public ActionResult TestMethod(Car carObj) 
{ 
    return PartialView("SelectedCar", carObj); 
} 

때 : 나는 다음 내 컨트롤러에서 다음

<div id="CarText"><%=Model.Cars[10].Name %></div> 
<div id="SelectedCar">no car selected</div> 
<%=Ajax.ActionLink("ajax test","TestMethod",new {carObj = Model.Cars[10]},new AjaxOptions {UpdateTargetId = "SelectedCar"})%> 

이 페이지를 실행하면 예상대로 렌더링됩니다 (예 : 11 번째 자동차의 이름이 첫 번째 div에 표시됨 ) 그런 다음 링크를 클릭하면 컨트롤러의 코드가 호출되지만 "carObj"매개 변수 항상 null입니다.

나는 이제 몇 페이지와 블로그를 읽었으며 내가 잘못한 것을보고 싶지 않다. 그러므로이 질문. 언제나처럼, 크게 감사

답변 :)

답변

1

은 그래서 당신은 내가 당신이 정말로 그것을 생각하면 그 의미가 있다고 가정 ... ActionLink를 통해 을 개체를 전달할 수 없습니다 밝혀졌습니다.

호 - 흠 .. 나는 단순히 내가 아약스를 통해 그것을 참조 할 수있는 ID 매개 변수를 추가해야 할 것 것 같아 :/

1

을 내가 sk93
에 동의하고 내가 사용 asjax.actionlink 방법를 havent 불구하고 많이 (jquery 사람).
귀하의 솔루션에 하나의 문제가 있음을 지적 할 수 있습니다 {carObj = SOME_CAR_OBJ} 이것은 귀하가 사용하는 동작 링크 방법에서 carObjsome value이라는 속성을 가진 객체라는 것을 의미합니다.
대신 당신이해야하는 것은 JSON 객체

{ 
//all the car propertiese 
name = cars[10].name, 
id = cars[10].id 
//etc etc 
} 

이 방법이 가능한 서버로 다시 carObj을 보낼 수있을 것입니다

관련 문제