2013-10-10 2 views
4

내 페이지에는 간단한 양식이 있습니다. 제출 된 경우 ModelState.IsValid인지 확인하고 유효하지 않은 경우 동일한 모델의보기를 반환합니다. 내 페이지에서 양식을 제출하고 유효성 검사가 실패 할 때까지Html.RenderAction은 Get 대신에 Post를 사용합니다.

Html.RenderAction("AccountNote", new { id = Model.ID }); 

모든 것이 잘 작동 : 같은 페이지에서

, 정말 같은 다른 형태를 포함하는 작업을 렌더링하고 있습니다. 페이지가 다시 표시되면 Get 이벤트가 발생할 것으로 예상되면 AccountNote 액션의 Post 이벤트가 발생합니다. 왜 그것이 일어나는 지 이해할 수있을 것 같습니다. 왜냐하면 뷰를 렌더링하는 액션이 ​​게시 된 것이므로 Get 이벤트가 대신 발생하기를 원합니다.

나는 잘못된 것을하고 있습니까? 아니면 내가이 일을하기 위해해야 ​​할 속임수가 있습니까? 나는 Html.RenderAction이 POST 대신 항상 GET을 취할 것으로 기대한다.

+1

가능한 복제본 [Html.RenderAction을 게시글의 Get 메소드를 호출하려면 어떻게해야합니까?] (http://stackoverflow.com/questions/3757072/how-can-i-get-html-renderaction-to -call-the-get-method-on-a-post) – nemesv

+0

게시 할 수있는 메서드와 사용할 사운드와 같은 다른 동작을 사용하지만 다른 메서드가 있는지 보려면이 메서드를 조금만 열고 싶습니다. . –

답변

0

하나의 해결책은 단 하나의 AccountNote() 액션 메소드를 가지고하는 것입니다. 그런 다음 GET 또는 POST에 관계없이 호출됩니다. AccountNote()의 POST 버전을 사용하는 경우 로직을 약간 수정해야 할 수도 있습니다.

그리고 [ChildActionOnly] 속성으로 꾸밀 수 있습니다.

1

아시다시피,이 문제에 대한 해결 방법은 없습니다. RenderAction 및 Action 메소드에서 현재 동사를 사용하기로 결정한 현재 요청을 고려하십시오. 하지만 이름을 바꿀 수 있습니다. 예를 들어 HttpPost로 제한된 이름을 AddAccountNote로 바꾸고 다른 하나는 현재 이름으로두고 동사를 지정하지 않고 그대로 둡니다.

관련 문제