MVC +控制器视图不显示

时间:2012-08-24 13:27:03

标签: ajax asp.net-mvc

我使用ajax将2个值发布到我的控制器,控制器获取值但不显示视图。请帮助我在这里做错了。感谢。

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");
        }

2 个答案:

答案 0 :(得分:1)

您需要在success回调中使用来自服务器的HTML源代码。

您应该首先不要告诉jQuery HTML是datatype: 'json'

答案 1 :(得分:1)

您需要将返回的HTML重新嵌入到您的文档中。例如如果添加

<div id='MyDiv'>

然后将您的ajax调用更改为

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

正如Slaks所提到的,您还需要更改return datatype accepts to 'html'