1

コントローラーに2つの値を投稿するためにajaxを使用しています。コントローラーは値を取得しましたが、ビューを表示しませんでした。ここで私が間違っていることを助けてください。ありがとう。

Javascript:

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({
                    url: '@Url.Action("SavePhoto")',
                    data: postData,
                    dataType: 'json',
                    success: function (response) {
                        // process the results from the controller action
                        //  window.location.href = response.Url;
                    }
                });
            } else {
                console.log('User cancelled login or did not fully authorize.');
                alert('User cancelled login');
            }
        }, { scope: 'publish_stream' });
    };

ボタン:

   <input type="button" id="auth-loginlink" value="Proceed" onclick="grantPermission();"/>

コントローラ:

public PartialViewResult SavePhoto(string facebookUID, string facebookAccessTok)
        {
            return PartialView("BlurredPhoto");
        }
4

2 に答える 2

1

コールバックでサーバーからのHTMLソースを使用して何かを行う必要がありsuccessます。

おそらく、HTMLがであるとjQueryに伝えないことから始めるべきですdatatype: 'json'

于 2012-08-24T13:29:12.553 に答える
1

返されたHTMLをドキュメントのどこかに埋め込む必要があります。例:

<div id='MyDiv'>

次に、ajax呼び出しをに変更します

            success: function (responseText, textStatus, XMLHttpRequest) {
                $("#MyDiv").html(responseText);
            }

Slaksが述べたように、returndatatypeacceptsを'html'に変更する必要もあります。

于 2012-08-24T13:33:18.840 に答える