2017-01-02 13 views
0

でnullを返します。のQueryStringはいつも、私は画像のURLを共有し、Facebookの上の画像をクリックすると、同じページに戻って、ユーザーを返すためにFacebookの共有機能を使用するWebフォーム

は、私は以下

http://www.facebook.com/sharer/sharer.php?u=http://domain.com/ImageShare.aspx?img=f3082420-8b92-4301-b093-bf8ce3f91772.jpg&slide=1&lg=1&pageurl=http://domain.com/photo/2016/album-images

CODEをサンプルURL共有しているいくつかのprosessingがImageShare.aspxページ上で実行された後、ユーザーがページにリダイレクトされます代わりに、いくつかのバックエンドのロジックを持っています

System.Text.StringBuilder sbMetaDetails = new System.Text.StringBuilder(); 
string urlReferer; 
string pageURL=null; 
if (HttpContext.Current.Request.UrlReferrer != null) 
{ 
pageURL = Request["pageurl"] + "#lg=1&slide=" + Request["slide"]; 
..... 
..... 
..... 
} 

Request["pageurl"] AND Request["slide"] URLは常にnullを返します。なぜこれが起こっているのか分かりません。

私は、これらの値にnullを取得する理由 Request["pageurl"] AND Request["slide"]

UPDATE把握することはできませんよ

を私はクエリ文字列しているように見えるdoesntのその問題に気づきました。私が好きなURLタグではありません。私は、フォームのソースを確認したときに、それは私がhttp://www.facebook.com/sharer/sharer.php?u=http://domain.com/ImageShare.aspx?img=f3082420-8b92-4301-b093-bf8ce3f91772.jpg&slide=1&lg=1&pageurl=http://domain.com/photo/2016/album-images

をFacebookへ投稿次のURLを渡すようにしようとしていますが、私のOGが唯一のimgクエリ文字列 <form method="post" action="./ImageShare.aspx?img=f3082420-8b92-4301-b093-bf8ce3f91772.jpg" id="form1">

でアクションURLを表示することを示し、彼らはなる。

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head><title> 

</title><meta property='og:image' content='http://www.domain.com/Images/gallery/images/f3082420-8b92-4301-b093-bf8ce3f91772.JPG'/> 
<meta property='og:type' content='article'/> 
<meta property='og:title' content='Title of the image'/> 
<meta property='og:description' content='Description of teh image'/> 
<meta property='og:url' content='#lg=1&slide='/> 
<meta property='og:site_name' content='http://www.domain.com'/> 
</head> 
<body> 
    <form method="post" action="./ImageShare.aspx?img=f3082420-8b92-4301-b093-bf8ce3f91772.jpg" id="form1"> 
<div class="aspNetHidden"> 
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTU3MzMzMjM1OQ9kFgQCAQ9kFgICAQ8WAh4EVGV4dAXIAzxtZXRhIHByb3BlcnR5PSdvZzppbWFnZScgY29udGVudD0naHR0cDovL3d3dy5oYWJ0b29yVGVubmlzLmNvbS9JbWFnZXMvZ2FsbGVyeS9pbWFnZXMvZjMwODI0MjAtOGI5Mi00MzAxLWIwOTMtYmY4Y2UzZjkxNzcyLkpQRycvPg0KPG1ldGEgcHJvcGVydHk9J29nOnR5cGUnIGNvbnRlbnQ9J2FydGljbGUnLz4NCjxtZXRhIHByb3BlcnR5PSdvZzp0aXRsZScgY29udGVudD0nQWduZXMgQnVrdGEnLz4NCjxtZXRhIHByb3BlcnR5PSdvZzpkZXNjcmlwdGlvbicgY29udGVudD0nQWduZXMgQnVrdGEgb2YgSHVuZ2FyeSBkdXJpbmcgaGVyIDFzdCByb3VuZCBxdWFsaWZ5aW5nIG1hdGNoJy8+DQo8bWV0YSBwcm9wZXJ0eT0nb2c6dXJsJyBjb250ZW50PScjbGc9MSZzbGlkZT0nLz4NCjxtZXRhIHByb3BlcnR5PSdvZzpzaXRlX25hbWUnIGNvbnRlbnQ9J2h0dHA6Ly93d3cuaGFidG9vcnRlbm5pcy5jb20nLz4NCmQCAw9kFgICAQ8PFgIeCEltYWdlVXJsBVtodHRwOi8vd3d3LmhhYnRvb3JUZW5uaXMuY29tL0ltYWdlcy9nYWxsZXJ5L2ltYWdlcy9mMzA4MjQyMC04YjkyLTQzMDEtYjA5My1iZjhjZTNmOTE3NzIuanBnZGRkDzpF0HTS6mi1GJe2v3ZqBKOICQk=" /> 
</div> 

<div class="aspNetHidden"> 

    <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="1F8C24FB" /> 
</div> 
    <div> 

    </div> 
     <img id="ImgName" src="http://www.domain.com/Images/gallery/images/f3082420-8b92-4301-b093-bf8ce3f91772.jpg" /> 
    </form> 
</body> 
</html> 

完全なコードページ

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 
using CMS.DataAccessLayer; 
using CMS.SqlHelper; 
using CMS.DateConvertion; 
using CMS.BusinessObjects; 
using CMS.DataAccessLayer; 
using System.Web.Routing; 
using System.Text.RegularExpressions; 

public partial class ImageShare2 : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     showDetails(); 

    } 



    public void showDetails() 
    { 
     try 
     { 
      DataSet ds = new DataSet(); 


      var img = Request["img"]; 

      if (!String.IsNullOrEmpty(img)) 
      { 
       String strSql = "SELECT * FROM PhotoAlbumImages WHERE PhotoImageLarge ='" + img + "'"; 
       ds = DataProvider.Connect_Select(strSql); 
       DataTable dt = ds.Tables[0]; 
       int rCount = ds.Tables[0].Rows.Count; 
       int ctr = 0; 
       var Title = String.Empty; 
       string imgURL = String.Empty; 
       ImgName.ImageUrl = "http://www.Domain.com/Images/gallery/images/" + img; 
       //ogImage.Content = "~/Images/gallery/images/" + img; 


       System.Text.StringBuilder sbMetaDetails = new System.Text.StringBuilder(); 
       string urlReferer; 
       string pageURL=null; 

       //Response.Write("<br/><br/>Request.UrlReferrer : " + Request.UrlReferrer +"<br/>"); 

       if (HttpContext.Current.Request.UrlReferrer != null) 
       //if (HttpContext.Current.Request.UrlReferrer == null) 
       { 

        // urlReferer = HttpContext.Current.Request.UrlReferrer.AbsoluteUri.ToString().ToLower(); 

        //pageURL = Helper.GetQueryStringValue("purl"); 
        //Response.Write("Helper.GetQueryStringValue('pageurl')<br> " + Request.QueryString["pageurl"]); 
        pageURL = Request.QueryString["pageurl"] + "#lg=1&slide=" + Request.QueryString["slide"]; 
        //BUILD Redirect URL 




        foreach (DataRow dr in dt.Rows) 
        { 
         Title = dr["PhotoTitle"].ToString(); 

         imgURL = "http://www.Domain.com/Images/gallery/images/" + dr["PhotoImageLarge"].ToString(); 

         sbMetaDetails.AppendLine("<meta property='og:image' content='" + imgURL + "'/>"); 
         sbMetaDetails.AppendLine("<meta property='og:type' content='article'/>"); 
         sbMetaDetails.AppendLine("<meta property='og:title' content='" + Title + "'/>"); 
         sbMetaDetails.AppendLine("<meta property='og:description' content='" + dr["PhotoDesc"].ToString() + "'/>"); 
         //sbMetaDetails.AppendLine("<meta property='og:url' content='" + Request.Url.ToString() + "'/>"); 

         if (!string.IsNullOrEmpty(pageURL)) 
         { 
          sbMetaDetails.AppendLine("<meta property='og:url' content='" + pageURL + "'/>");       
          Response.Write("AA<br>"); 
         } 
         else 
         { 
          sbMetaDetails.AppendLine("<meta property='og:url' content='" + Request.Url.ToString() + "'/>"); 
          Response.Write("AB<br>"); 
         } 
         sbMetaDetails.AppendLine("<meta property='og:site_name' content='http://www.Domain.com'/>"); 
        } 

        litCtrMetaForSM.Text = sbMetaDetails.ToString(); 

        //redirect 
        //Response.Redirect(pageURL); 

       } 
       else 
       { 

        urlReferer = ""; 
        foreach (DataRow dr in dt.Rows) 
        { 
         Title = dr["PhotoTitle"].ToString(); 


         imgURL = "http://www.Domain.com/Images/gallery/images/" + dr["PhotoImageLarge"].ToString(); 
         // ogImage.Content = imgURL; 

         sbMetaDetails.AppendLine("<meta property='og:image' content='" + imgURL + "'/>"); 

         sbMetaDetails.AppendLine("<meta property='og:type' content='article'/>"); 
         sbMetaDetails.AppendLine("<meta property='og:title' content='" + Title + "'/>"); 
         sbMetaDetails.AppendLine("<meta property='og:description' content='" + dr["PhotoDesc"].ToString() + "'/>"); 
         //sbMetaDetails.AppendLine("<meta property='og:url' content='" + Request.Url.ToString() + "'/>"); 
         if (pageURL == null) 
         { 
          sbMetaDetails.AppendLine("<meta property='og:url' content='" + Request.Url.ToString() + "'/>"); 
         } 
         else 
         { 
          sbMetaDetails.AppendLine("<meta property='og:url' content='" + pageURL + "'/>"); 
         } 
         sbMetaDetails.AppendLine("<meta property='og:site_name' content='http://www.Domain.com'/>"); 
         litCtrMetaForSM.Text = sbMetaDetails.ToString(); 
         //Response.Redirect(pageURL); 
        } 
       } 








      } 

     } 
     catch (Exception ex) { Response.Write(ex.Message.ToString());} 

    } 




} 

の背後にあるコード

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ImageShare.aspx.cs" Inherits="ImageShare2" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 

    <asp:Literal ID="litCtrMetaForSM" runat="server"></asp:Literal> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 

    </div> 
     <asp:Image ID="ImgName" runat="server" /> 
    </form> 
</body> 
</html> 
+0

トップにあなたが提供したサンプルURLは、どのようにビルドするのですか?それが上記のとおりであれば、クエリ文字列をURLエンコードする必要があるかもしれません。 –

+0

私が実際にシェアをフェイスブックにこのURLを渡し 'http://www.facebook.com/sharer/sharer.php?u=http://domain.com/ImageShare.aspx?img=f3082420-8b92-4301-b093 -bf8ce3f91772.jpg&slide = 1&lg = 1&pageurl = http:// domain.com/photo/2016/album-images'ですが、Facebookのリンクが常にURL全体ではなくimgで表示されるので、同じURLを取得することはできません。 。 – Learning

+0

さらにこのURLには、スライドのための '#lg = 1&slide = 10'値が動的なので、2つのクエリーストリングをappedする必要があります。img iのクエリデータベースに基づいて、タイトル、説明を作成し、og:urlタグを再作成したいが、FBページの画像がクエリー文字列として機能しているようだ。http://domain.com/ImageShare.aspx ?img = f3082420-8b92-4301-b093-bf8ce3f91772.jpg' – Learning

答えて

0

ためのtehのページのソースを次のようにコードを変更します。

System.Text.StringBuilder sbMetaDetails = new System.Text.StringBuilder(); 

string urlReferer; 
string pageURL=null; 

if (HttpContext.Current.Request.UrlReferrer != null) 
{ 
    pageURL = HttpContext.Current.Request.QueryString["pageurl"] + "#lg=1&slide=" + HttpContext.Current.Request.QueryString["slide"]; 
    ..... 
    ..... 
    ..... 
} 
+0

私もこれを試していました。問題がクエスチングであるかどうかはわかりません。私はより詳細な質問を更新しました – Learning

0

Request [] vs Request.QueryString [] Request []はQueryString(https://stackoverflow.com/a/3178558/4630403)で始まるリソースをチェックするので、問題は発生しません。

は、サイトがあなたの方法に当たっているときに、ブラウザのURLを確認し、「PAGEURL」と「スライド」は、その中に存在していることを確認してください。

フォーム/ ajaxコールがリクエストと一緒にデータを送信していない場合は、

-Edit-

あなたはImageShare2ページ(フォーム/リンク)に来ているところからコードを投稿してください。

関連する問題