【发布时间】:2014-07-11 15:29:12
【问题描述】:
我在一个网页上有文字,我正试图将其提供给 Facebook 帖子。我知道 facebook 发布代码是正确的,因为如果我用硬编码文本替换我的 facebookMsg 字符串,它就会发布得很好。我遇到的问题是我丢失了上一页的文本。我在我的 facebookPost.aspx 页面的顶部包含: 这告诉我我应该能够访问我尝试过的默认页面控件 Server.Transfer("~ /FacebookPost.aspx", true);以及 Response.Redirect("~/FacebookPost.aspx");两者都给我同样的错误。
这是我的代码:
来自 Default.aspx 的图像按钮点击事件:
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");
}
这是引发异常的代码的 sn-p:
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);
}
这是我的 facebookPost.aspx.cs 中的 setFacebookMessage 方法:
protected void setFacebookMessage(String tempString)
{
facebookMsg = tempString;
}
最后,我的 Default.aspx.cs 中的 SocialMediaPost:
public String SocialMediaPost
{
get
{
return SocialMediaHiddenField.Value;
}
}
当我调试时,我什至无法让系统切换到 Default.aspx.cs 代码来获取 HiddenField 值,所以就好像它完全失去了那个页面。
感谢您的帮助!
【问题讨论】:
-
也许使用 .net 的cross page postback 功能会有所帮助?
-
我已经参考了这些说明,并在目标页面上使用 和公共属性输入了正确的代码:public String SocialMediaPost 在资源。这就是为什么我不明白为什么它没有找到上一页。
标签: c# asp.net facebook nullreferenceexception