2014-05-22 4 views
0

페이스 북 게시물에 피드를 제공하려는 텍스트가 한 웹 페이지에 있습니다. 나는 facebookMsg 문자열을 하드 코딩 된 텍스트로 바꾸면 제대로 게시되기 때문에 페이스 북 게시 코드가 정확하다는 것을 알고 있습니다. 내가 겪고있는 문제는 어떻게 든 이전 페이지의 텍스트를 잃어 버리고 있습니다. 나는 내 facebookPost.aspx 페이지의 상단에 포함 시켰습니다 :% @ PreviousPageType VirtualPath = "~/Default.aspx"%> 제가 시도한 기본 페이지 컨트롤에 액세스 할 수 있어야한다고 알려줍니다. Server.Transfer ("~ /FacebookPost.aspx ", true); Response.Redirect ("~/FacebookPost.aspx"); 그리고 둘 다 나에게 똑같은 오류를 준다. Default.aspx를에서페이스 북에 게시하는 동안 null 참조 예외가 발생했습니다.

이미지 버튼 클릭 이벤트 :

  try 
      { 
       using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) 
       { 
        StreamReader reader = new StreamReader(response.GetResponseStream()); 
        string vals = reader.ReadToEnd(); 

        foreach (string token in vals.Split('&')) 
        { 
         tokens.Add(token.Substring(0, token.IndexOf("=")), 
          token.Substring(token.IndexOf('=') + 1, token.Length - token.IndexOf("=") - 1)); 
        } 
       } 

       string access_token = tokens["access_token"]; 

       setFacebookMessage(PreviousPage.SocialMediaPost); 


       //need to install facebook SDK for .net: 
       //tools/library package manager/manage nuget packages for solution search online for Facebook and install 
       var client = new FacebookClient(access_token); 
       client.Post("/me/feed", new { message = facebookMsg }); 
       //Response.Redirect("~/Default.aspx"); 
      } 
      catch (Exception e) 
      { 
       Response.Write(e.ToString() + "<br/><br/>" + url); 
      } 
:

다음
protected void FacebookImageButton_Click(object sender, ImageClickEventArgs e) 
    { 
     int fb = 1; 

     HiddenField1.Value += "*facebook=" + fb.ToString(); ; 
     //Server.Transfer("~/FacebookPost.aspx", true); 
     Response.Redirect("~/FacebookPost.aspx"); 
    } 

이 예외가 발생되는 코드의 조각입니다 여기

내 코드입니다

내 얼굴에 setFacebookMessage 메소드가 있습니다. bookPost.aspx.cs : 나의하여 default.aspx.cs에 마지막으로

protected void setFacebookMessage(String tempString) 
    {    
       facebookMsg = tempString;  
    } 
, 내 SocialMediaPost : 나는 심지어 시스템으로 전환 얻을 수 없습니다 디버깅

public String SocialMediaPost 
    { 
     get 
     { 
      return SocialMediaHiddenField.Value; 
     } 
    } 

Default.aspx.cs 코드는 HiddenField 값을 가져 와서 페이지 전체를 잃어 버리는 것과 같습니다.

감사합니다.

+0

아마도 [cross page postback] (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.imagebutton.postbackurl (v = vs.110) .aspx) 기능을 사용하십시오. .net 도움이 될 것입니다? – DaveParsons

+0

나는이 지침을 참조했으며 대상 페이지에서 <% @ PreviousPageType VirtualPath = "~/Default.aspx"%>와 소스 코드의 public 속성 인 Public String SocialMediaPost를 사용하여 적절한 코드를 입력했습니다. 그래서 내가 이전 페이지를 찾지 못하는 이유를 이해하지 못하는 이유입니다. – user3586542

답변

0

나는 무엇이 잘못되었는지 알아 냈습니다. Response.Redirect가 발생하여 페이지를 새로운 페이지로 다시로드하는 대신 다시 게시하기 때문에 값이 전달되었지만 리디렉션이 발생하면 해당 페이지가 손실되고 이전 페이지가 새로운 것입니다.

세션을 사용하여 문제를 해결했습니다. http://msdn.microsoft.com/en-us/library/vstudio/ms178581(v=vs.100).aspx

이렇게하면 전달 된 값을 Session에 넣을 수있었습니다.이 값은 리디렉션을 통해 유지되고 그 후에 액세스 될 수 있습니다.

관련 문제