2011-01-13 3 views
2

다음 작업을 수행하는 방법을 파악하는 데 문제가 있습니다.MVC2 - 각 페이지에 일반적인 LOGIC 컨트롤 (검색/찾기와 유사)을 넣는 방법은 무엇입니까?

모든 페이지 (또는 내가 원하는 모든 페이지)에 공통된 컨트롤 위젯을 넣고 싶습니다. 텍스트 상자 + 버튼). 이를 수행하는 가장 좋은 방법은 무엇이며 제출 버튼을 처리하는 사람은 제출 버튼이라고 가정합니다.

즉 내 ViewUserControl의 모습은 무엇입니까? 그것은 형태가 있습니까? jQuery onclick ""을 사용합니까? 기본 View의 액션 메소드에 게시하거나 다른 컨트롤러/액션으로 리디렉션 할 수 있습니까?

"Search.ascx"의 RenderAction을 사용하여 양식이 포함되어 있으며 내 SearchController에서 처리하지만 ... SearchController에서 RedirectToAction을 호출하려고하면 불만 사항이 발생합니다. RedirectActions는 하위 작업에 허용되지 않습니다.

다음에해야 할 일에 조금 분실되어 제안을 크게 환영합니다! 레이

답변

0

HTML 요소를 표시하는 가장 좋은 방법은 마스터 페이지에 표시하거나 마스터 페이지에서 참조하는 부분에 배치하는 것입니다. 나는 그것이 자신의 형태 일 것이고 SearchController에 제출할 것입니다.

자세한 내용을 원하면 알려주십시오.

0

RenderPartial은 여기로가는 길입니다. 귀하의 control.ascx 그것의 양식과 제출 버튼으로 구성됩니다.

1

올바른 트랙에있는 것 같습니다 (ViewUserControlRenderPartial 사용). 그러나 당신이 제공 한 정보와 함께,

쉽게 (..., RenderAction) 당신이 다른 문제가 무엇인지를 쉽게되지 않습니다 :

  • 은 UserControl을 생성 (의 .ascx) 및 얻을 URL이/search/... 인 형태로 거기에서 양식을 얻을 수 있습니다.
  • 보기에서 RenderPartial을 호출하고보기 이름을 제공하십시오.
  • 검색에서 게시물을 받으려면 컨트롤러를 만드십시오. 이것은 상위 뷰 컨트롤러와 동일한 컨트롤러가 아닙니다.
+0

니티 피키이므로 검색은 Ray가 작업중인 컨트롤러의 작업 일 수 있기 때문에 "이 컨트롤러가 같지 않습니다."라는 말은 "반드시 같은 컨트롤러가 아닙니다 ..."라고 다시 말합니다. [확률은 검색 컨트롤러가 적절하다고 생각하면 좋습니다 ...] –

0

아마 부분보기를 할 수있는 가장 좋은 방법은 무엇입니까. .ascx 파일.

제출 버튼 (제출 버튼이라고 가정)을 누가 처리합니까?

부분보기

무엇을 내 ViewUserControl 같이 을 보이나요? 그것은 형태가 있습니까?

예, 양식이 있습니다. 가능한 한 자체 포함되어야합니다.

jQuery onclick ""을 (를) 사용합니까? 이 메시지를 메인보기의 작업 방법 에 게시 하시겠습니까? 아니면 다른 컨트롤러/액션으로 리디렉션 할 수 있습니까?

정확한 시나리오에 가장 적합합니다. 가장 적절한 조치가 게시되어야합니다. 부분 뷰가 다른 부모 뷰에서 재사용되므로 기본 뷰의 동작이 될 가능성이 낮습니다.

나는 을 양식을 포함하고 내 SearchController에 의해 처리되는 "Search.ascx"의 RenderAction을 사용하여 시도 ...하지만 SearchController에, 그 다음 전화 RedirectToAction에 시도 .. 그리고 RedirectActions에 대한 불만 사항이 발생하여 하위 작업에 이 허용되지 않습니다.

당신은 아마 부모 뷰에서 RenderPartial를 사용하여 렌더링 할 수 있습니다 :

<%: Html.RenderPartial("MyPartialView.ascx") %> 
0

좋아, 내 문제가 무엇인지 알아 냈어. 위의 답이 맞습니다. 나는 내 자신의 Search.ascx 사용자 정의 컨트롤과 SearchController를 가지고있다. RenderPartial을 사용했는데, 나를 괴롭힌 것은 컨트롤러/액션을 명시 적으로 지정하는 것을 잊었다는 것이다. 그래서 onclick 이벤트와 Url.Action을 사용하여 버튼을 클릭하십시오.

<% using (Html.BeginForm("MySearchAction", "MySearchController")) { %> 

답장을 보내 주신 모든 분들께 감사드립니다.

관련 문제