私は MVC を初めて使用します。あるコントローラーから別のコントローラーに変数値を渡す方法について、ここでアドバイスをお願いします。基本的に、私が達成したいのは Facebook 認証を実行することです。認証が成功した後、新しいビューでさらに処理するために別のコントローラーに渡したいAccessToken値とフルパス変数値を取得する必要があります。これまでに行ったことに意味があるかどうかはわかりません。
次のような ActionResult メソッドがあります (わかりやすくするために簡略化されています)。
[HttpPost]
public ActionResult Index(string facebookUID, string facebookAccessTok)
{
string fbUID = facebookUID;
string fbAcess = facebookAccessTok;
var fullpath = "";
string uploadPath = Server.MapPath("~/upload");
fullpath = uploadPath + "\\ProfilePic.png";
return null;
}
私のインデックスビューでは:
<script type="text/javascript">
var uid = 0;
var accesstoken = '';
function grantPermission() {
window.FB.login(function (response) {
if (response.authResponse) {
uid = response.authResponse.userID;
accesstoken = response.authResponse.accessToken;
var postData = { facebookUID: uid, facebookAccessTok: accesstoken };
$.ajax({
type: 'POST',
data: postData,
success: function () {
// process the results from the controller action
window.location.href = "Publish";
}
});
} else {
alert('User cancelled login');
}
}, { scope: 'publish_stream' });
};
上記のビュー内で、別のページ呼び出し " Publish " へのリダイレクトを行います。そのコントローラー インデックス ActionResult には、さらに処理するためにfbAcessとフルパス変数の値が必要です。値を渡す方法をアドバイスしてください。