2011-04-12 11 views
0

내 웹 사이트에 ASP.NET MVC 3을 사용하고 있습니다.다른 컨트롤러 게시 메서드 호출

"이전, 다음 및 저장"버튼이있는 부분보기를 만들었습니다. 내 마스터 페이지에서이 부분보기를 호출합니다.

필자의 요구 사항은 View입니다. 나는 Model 데이터를 컨트롤러 동작에 전달하여 다른 컨트롤러에서 다른 Save 메서드를 호출 할 수 있어야합니다. I는 4 단계의 데이터 입력을

  • 예, I는 각 단계에 대한 상이한 제어기를 갖는다. I 2 단계에서 생각하면

  • 난 1 단계에이고 내가 Step1Controller의 액션 메소드에 가야 양식 값을 저장을 클릭하면,
  • 다음 포스트는이 같은 Step2Controller

뭔가를 호출해야합니다 :

public ActionResult Save(GenericModel model) 
{ 
    //use reflection to find out model type 

    //call appropriate controller action with model 

    return RedirectToAction("Create", new { Controller = "Conference", Action = "Create" }); 
} 

이 저장 방법

Master pageSave 버튼 호출됩니다. 이것을 어떻게 할 수 있습니까?

+0

이것은 컨트롤러와 모델의 개념을 잘못 사용할 가능성이있는 것 같습니다. 동일한 모델의 양식 게시 결과에 대해 단일보기가 여러 컨트롤러에 액세스하는 이유는 무엇입니까? 필요한 모든 기능이 다른 기능을 호출하는 것이라면 동일한 컨트롤러에서 기능을 만드십시오. 그러나 여기에서하려는 작업을 다시 평가해야합니다. 각보기 (또는 부분보기)는 자체 양식을 마무리하고 제출시 자체 제어기 조치를 호출해야합니다. – dodexahedron

답변

0

양식이 컨트롤러에서 별도의 작업을 수행합니까?

그렇다면 각 페이지에서 관련 컨트롤러를 가리 키도록 양식 작업을 설정하십시오.

<form method="post" action="/step2controller/action"> 

가이 문제 해결에 도움이 되었습니까 : 그래서 형태 1

<form method="post" action="/step1controller/action"> 

양식 2이다?

+0

동일한 저장 단추가 다른 모든보기에서 사용되므로 특정 단계의 컨트롤러 및 동작 이름이있는 폼을 제공 할 수 없습니다. 따라서 해당 컨트롤러 동작을 추가로 호출 할 공통 컨트롤러에서 해당 컨트롤러를 결정합니다. 내가 뭘하려는 건 내 저장 버튼은 모든보기에서 각 게시물에 대한 컨트롤러 작업을 호출하고 어떤 컨트롤러의 저장 방법이 해당 작업에 전달 된 모델로 호출되는지 결정됩니다. – Vivek

0

컨트롤러에 개인 메서드를 만들고 첫 번째 단계의 모든 부분을 호출합니다.

private bool Save(GenericModel model) 
{ 
    ...... 
} 

[HttpPost] 
public bool SaveStep1(GenericModel model) 
{ 
     this.Save(model); 
} 

[HttpPost] 
public bool SaveStep2(GenericModel model) 
{ 
     this.Save(model); 
} 
관련 문제