我使用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");
}
答案 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'。