2011-02-10 15 views
2

誰かがMVCアプリケーションでFacebook C#SDKでフォーム投稿をどのように使用できるか指摘できますか?これはiframeベースのCanvasアプリケーションです。フォーム投稿するFacebook C#SDK

私は、次のコード

[HttpPost, CanvasAuthorize(Permissions = "publish_stream")] 
public ActionResult Enter(FormCollection col) 
{ 
    var fbApp = new FacebookClient(this.CurrentSession.AccessToken); 

    JsonObject result = (JsonObject)fbApp.Get("me"); 

    long FacebookId = long.Parse(result["id"].ToString()); 

    //CODE TO INSERT GOES HERE 

    return View(); 
} 

を持っていると、フォームがこの

<form action="/EnterComp/Enter" enctype="multipart/form-data" method="post"> 
<fieldset> 
    <legend>Fields</legend> 
    <div class="editor-label"> 
     <label for="Text">Text</label> 

    </div> 
    <div class="editor-field"> 
     <input id="Text" name="Text" type="text" value="" /> 

    </div> 
    <div class="editor-label"> 
     <label for="ImagePath">ImagePath</label> 
    </div> 
    <div class="editor-field"> 

     <input type="file" name="ImagePath" id="ImagePath"> 

    </div> 
    <div class="editor-label"> 
     <label for="VideoPath">VideoPath</label> 
    </div> 
    <div class="editor-field"> 
     <input type="file" name="VideoPath" id="VideoPath"> 

    </div> 

    <p> 
     <input type="submit" value="Create" /> 
    </p> 
</fieldset> 
</form> 

ですが、毎回、私はフォームを送信し、それを再認証するために表示されます - ので、フォームのコレクションを失います。今、本当にシンプルなものがあると確信しています。何か助けていただければ幸いです。

EDIT

は、私はここで自分の質問に答えたと思うが、私に見える場合は他の誰の後に。解決策は少なくとも私にとってはhereでした。

しかし、誰かが他に何か提案することができる場合。助けてください!

答えて

5

実際にこの問題を解決するMVCフォームのヘルパーがあります。

ヘルパーは、フォーム内部に入る:

カミソリ構文:

@Html.FacebookSignedRequest(); 

ASP.NET構文

<%=Html.FacebookSignedRequest() %> 

このすべてが実際には、フォームに隠されたとして、あなたのsigned_requesetを格納しています。このようにしてフォームが投稿されると、Facebookオーセンティケータはリクエストを再認証することができます。

+0

それは治療をしました!どうもありがとうございます。ありがとう。 – Roffers

+0

解決策を見つけるのに数時間かかりました – Ben

関連する問題