2010-01-05 1 views
0

한 페이지에서 다른 페이지로 처리를 전송하기 위해 Server.Transfer()를 사용하고 있습니다. 문제는 전송 된 페이지 원본의 양식 작업이 브라우저의 URL에 따라 원본 페이지가 아니라 대상 페이지를 참조한다는 것입니다.<form> Server.Transfer()를 사용할 때의 동작

양식의 동작을 실제 도착 페이지가 아닌 브라우저의 URL로 반영 할 수있는 방법이 있습니까?

미리 감사드립니다.

마크

+2

구현하려는 Response.Redirect()입니까? –

답변

0

양식에게 ID를 줄 경우 속성 속성에 작업을 변경할 수 있습니다.

<form runat="server" id="form1" action=""> 
</form> 

는 다음 코드에서 다음과 같은 형태를 참조하십시오

form1.Attributes["action"] = "new action"; 

동작을 변경하면 아마 제대로 작동 새 페이지를 대상으로 포스트 백 이벤트가 발생합니다. 귀하의 디자인 허가가 귀하의 다른 대안은 Response.Redirect를 사용하는 것입니다.

또한 새 페이지의 단추에 대해 PostBackUrl을 조사하면 게시자가 게시 할 페이지가 변경됩니다.

0

여기서 HttpContext.RewritePath이 유용할지 조사해야합니다. 일반적으로 이와 같은 경우 원래 페이지의 URL을 사용하여 대상 페이지의 PreRender 이벤트에서 경로 다시 쓰기를 사용합니다. 이로 인해 현재 내부 경로를 사용하여 URL을 생성하는 컨트롤이 만들어 지므로 해당 URL이 렌더링 될 때 원본 URL에 그대로 있다고 생각할 수 있습니다.

+0

흠. ReritePath를 내 목적지 페이지, 즉 비우호적 인 URL이있는 페이지에서 시도했지만 효과가 없습니다. 양식의 액션 태그가 여전히 비우호적 인 URL을 표시합니다. 제안 사항이 있으십니까? –

1

모든 논리가 내 global.asax에 집중되도록 System.Web.Routing 네임 스페이스를 사용하여 라우팅 코드를 다시 작성 했으므로 걱정하지 않아도됩니다. 치료를해라!

도움 주셔서 감사합니다.

마크