2010-01-17 2 views
1

데이터베이스에서 레코드를 렌더링하는 asp.net mvc 페이지가 있는데, RenderPartial을 사용하여 해당 레코드와 관련된 항목의 편집 가능한 목록을 렌더링하는 다른보기를 호출합니다.ASP.NET MVC는 RenderPartial을 사용하여 POST를 '저장'합니다.

내 문제는 저장/제출 버튼뿐 아니라 해당 레코드에 대한 변경 사항을 저장하는 것이 아니라 RenderPartial 부분에서 변경 한 내용을 저장하고 싶습니다 ... RenderPartials 컨트롤러에서 POST를 수락하는 메소드를 만들었지 만, 전화가 안되니? 어떤 아이디어? 아니면 RenderPartial을 잘못 사용하고 있습니까? 나는 데이터

의 부분 집합을 처리하는 컨트롤러를 가질 수 있도록 나는 이런 식으로 한

업데이트 :

당신이있는 페이지가 상황을 상상해 : 나는 충분히 명확 봤는데 생각하지 않는다 데이터베이스의 여러 테이블에있는 정보로 가득 차 있습니다 ... 예를 들어 사람의 기록이 있다고 가정하고 페이지에 나열 할 조직에 대한 모든 링크가 있으므로 페이지에 다음 내용이 포함됩니다.

개인 이름, 이메일 등 ... 및 조직 링크 1 조직 링크 2 링크 등 테이블

페이지의 렌더링하려는 데이터의 양 때문에 각기 다른 컨트롤러를 사용하여 각 부분을 렌더링하는 것으로 생각했지만 데이터를 저장할 때 컨트롤러 메서드 하나만 사용하거나 할 수는 있습니다. 나는 하나의 컨트롤러를 다른 컨트롤러로 부른다. 나는 전체 페이지를위한 하나의 폼과 하나의 '저장'버튼만을 가지고있다.

나는 이것이 더 분명 할까?

+0

MVC와 더 많이 작업 한 사실이 어리석은 질문 이었기 때문에 결코 답할 수 없다는 것을 깨달았습니다. –

답변

0

"내가 RenderPartial의 동작에서 POST를 수락하는 메서드를 만들었습니다 ..."라고 말한 것 같지만 각 컨트롤러마다 특정 컨트롤러가있을 필요는 없습니다.

기본 html 도우미 명령을 수락하면 때로는 어떤 동작이 호출되는지 혼동 스러울 수 있습니다. 특정 웹 페이지의 경우 태그는 POST 값을 어디에서 결정합니다. 따라서 호출 된 동작은 Html.BeginForm 호출에서 지정한 컨트롤러/동작에 따라 달라집니다.

예를 들어, 여기에 우리가 ASCX 페이지에서 사용하는 형태이다 :

<% using (Html.BeginForm("InvoiceDetail" //Action 
      , "CompanyInvoice" //Controller 
      , FormMethod.Post 
      , new { @id = "InvoiceForm", @autocomplete = "off" })) 
    {%> 

양식은 컨트롤러, 어떤 행동을 게시 할 수 있습니다. 원하는 것은 아니지만 매우 유연합니다. 또한 단일 웹 페이지에서 여러 양식을 사용할 수 있으므로 복잡한 양식에 적합합니다.