2011-11-28 3 views
0

.ashx 처리기 파일에서 .html의 청크를 .aspx 페이지에 쓰려고합니다. 처리기 파일에서 서버 태그를 작성하려고합니다.Response.Write를 통한 서버 컨트롤

<asp:updatepanel id="UpdatePanel6" childrenastriggers="True" updatemode="Always" runat="server"> 
<contenttemplate> 
<ajaxtoolkit:rating id="Rating6" autopostback="True" emptystarcssclass="Empty" filledstarcssclass="Filled" waitingstarcssclass="Saved" starcssclass="ratingItem" cssclass="ratingStar" currentrating="2" maxrating="5" runat="server"> </ajaxtoolkit:rating> 
</contenttemplate> 
</asp:updatepanel> 

그러나 해당 .aspx 페이지에는 표시되지 않습니다. 내가 불을 지르고에서 그것을 검사 할 때, 나는 코드 덩어리가 아닌

<div id="UpdatePanel11"> 
<div id="Rating11" class="ratingStar"> 
<input id="Rating11_RatingExtender_ClientState" type="hidden" value="2" name="Rating11_RatingExtender_ClientState"> 
<a id="Rating11_A" style="text-decoration:none" title="2" href="javascript:void(0)"> 
<span id="Rating11_Star_1" class="ratingItem Filled" style="float:left;">&nbsp;</span> 
<span id="Rating11_Star_2" class="ratingItem Filled" style="float:left;">&nbsp;</span> 
<span id="Rating11_Star_3" class="ratingItem Empty" style="float:left;">&nbsp;</span> 
<span id="Rating11_Star_4" class="ratingItem Empty" style="float:left;">&nbsp;</span> 
<span id="Rating11_Star_5" class="ratingItem Empty" style="float:left;">&nbsp;</span> 
</a> 
</div> 

같은 사람이 내가 여기에 놓친 거지 무엇에 포인터를 도와 줄 수 있어야 실행 조각을 볼 수? 감사 !

+0

다시 말해서, 웹 페이지에 기록 된 서버 컨트롤을 실행할 수있는 방법이 있습니까? 말하자면, Response.Write를 통해 웹 페이지에 asp.net 서버 컨트롤을 작성하고 싶습니다. – Skynet

답변

1

이 작업을 수행 할 수 없습니다. Response.Write는 처리없이 출력 스트림에 직접 주입합니다. .aspx 페이지는 컨트롤 트리 (리터럴 마크 업과 .aspx 파일의 컨트롤 태그로 구성)를 만들고, 코드에 더 많은 컨트롤을 동적으로 추가하여 출력을 생성합니다. 그런 다음 트리의 노드가 하향식 순서로 평가되어 HTML을 생성하고 Response.Write 호출을 통해 브라우저로 다시 보냅니다.

.aspx 페이지와 달리 .ashx 처리기는 컨트롤을 처리하지 않습니다. 컨트롤 트리가 없습니다. 귀하는 요청을 읽고 원시 응답 문구를 직접 작성해야합니다.

동적으로 컨트롤을 만들려는 것처럼 들립니다. 이 경우 .aspx 파일을 사용하고 코드 숨김 파일의 트리에 컨트롤을 추가하십시오.

0

Carl이 언급했듯이 달성하기가 조금 어려울 것입니다. 만약 당신이해야 할 일은 단지 동적 인 등급을 만드는 것입니다, 나는 page.Controls.Add을 사용하고 사용자가 그것들을 클릭 할 때 처리 할 수 ​​있도록 핸들러를 추가 할 것을 제안 할 것입니다. 도움이 필요하면 알려주십시오.