2011-02-11 3 views
2

저는 고용주의 프로필 기반 웹 앱에 대한 간단한 평가 시스템을 개발 중입니다. A와뿐만 아니라어떻게 asp.net에서 폼 포스트의 쿼리 문자열을 다시 추가 할 수 없습니까?

  • 실제 페이지 domain.com/review.aspx?user=username하지만, 내가 domain.com/username/review
  • 페이지를 사용하는 IIS의 URL-재 작성 모듈을 사용, 즉 사용자 이름에 대한 리뷰를 표시하는 리피터 컨트롤이 포함되어 있습니다 : 여기에 내 문제입니다 사람들이 새 리뷰를 작성하는 양식
  • 양식이 제출되면 asp.net은 다시 게시 할 때 url에 (숨겨진) 쿼리 문자열을 다시 추가합니다.
  • 포스트 백 URL이 이제 domian.com/username/review?user=username&review으로 바뀌면 페이지가 중단됩니다.

이미 실제로 존재하는의 QueryStrings을 다시 추가에서 asp.net을 유지하기 위해 어떤 방법이 있나요하지만 IIS

Live link <으로 작성 재 - 리뷰를 제출 한 다음 페이지를 새로 고침 (편집) 주소창에 클릭하여! 아름다운 노란색 오류 메시지.

편집

C# 코드 :

protected void submitReview(object sender, EventArgs e) 
    { 
     try 
     { 
      int starRating = txtStarRating.Text == "" ? 0 : Int32.Parse(txtStarRating.Text); 
      testimonials.addNew(Int32.Parse(txtHiddenUid.Text), reviewContent.Text, reviewerName.Text, true, starRating); 
      reviewForm.Visible = false; pnlReviewSubmissionSuccess.Visible = true; 
     } 
     catch { starErrorMessage.Text = "There was an error submitting your review. Please refresh this page and try again."; } 
    } 

ASP 코드 :

<div ID="pnlSubmitReview" runat="server"> 
       <div id="reviewForm" runat="server"> 
        <div id="leaveReviewBoxes"> 
         <span style="margin-bottom:10px; float:left; font-weight:bold;">Leave a Review</span> 
         <div style="clear:both;"></div> 
         <asp:Label ID="nameLabel" runat="server">Name:</asp:Label>    
         <asp:Textbox runat="server" ID="reviewerName"></asp:Textbox> 
         <div style="clear:both;"></div> 
         <asp:Label ID="reviewLabel" runat="server">Review:</asp:Label> 
         <asp:Textbox runat="server" ID="reviewContent" Width="200px" TextMode="MultiLine"></asp:Textbox> 
        </div> 

        <div> 
         <ol id="starlist"> 
          <li><a id="star1" name="star1" href="javascript:void(0)" class="star"></a></li> 
          <li><a id="star2" name="star2" href="javascript:void(0)" class="star"></a></li> 
          <li><a id="star3" name="star3" href="javascript:void(0)" class="star"></a></li> 
          <li><a id="star4" name="star4" href="javascript:void(0)" class="star"></a></li> 
          <li><a id="star5" name="star5" href="javascript:void(0)" class="star"></a></li> 
         </ol> 
         <asp:TextBox ID="txtStarRating" runat="server" Text=""></asp:TextBox>    
         <asp:Label runat="server" ID="starErrorMessage"></asp:Label> 
         <asp:TextBox ID="txtHiddenUid" runat="server" Visible="false"></asp:TextBox> 
        </div> 
        <asp:Button runat="server" ID="submitReviewButton" Text="Submit Review" OnClick="submitReview" /> 
       </div> 

       <div ID="pnlReviewSubmissionSuccess" runat="server" Visible="false"> 
         Thank you! Your review has been submitted. 
       </div> 
      </div> 
+0

리뷰를 제출하고 새로 고침했지만 오류가 발생하지 않았습니다. offtopic - 오그 덴 출신, 몇 년 전 작은 세상으로 옮겼습니다! 요즘 전면에있는 것들은 어떻게 전면에 있습니까? – asawyer

+0

실제로 작은 세상! 슬로안 코치의 애도 기간에도 불구하고 오그 던은 추위와 훌륭합니다. –

+1

폼에'action' 매개 변수를 생성하는 코드를 게시하십시오. –

답변

7

난 당신이 같은 매핑 된 URL에 페이지의 Form.Action 속성을 설정해야합니다 생각합니다.

+1

좋습니다. 간단한 솔루션! forms 조치 특성을 "#"으로 설정하십시오. 양식은 아직 제출되지만 post-url은 동일합니다. –