0

从我在其他帖子中看到的内容来看,此错误是因为方法签名中给出的参数与发布的输入名称不匹配。或者以某种方式甚至没有发送值。

首先这个页面是一个登录Facebook的测试页面。它检索用户的 uid 和访问令牌,然后将其发送到服务器以存储在会话中并重定向到另一个页面。所有的 javascript 都取自 C# FB sdk,服务器端非常基础。

我感到困惑的真正问题是,如果我在 FB 上以我自己的帐户登录但测试用户,而不是 API 生成的临时测试用户帐户的朋友,它会在弹出窗口要求用户授予应用程序权限。我在提交表单数据之前查看了它,它隐藏了与服务器上的参数对应的名称和值的输入。

知道为什么它不会通过帖子与测试用户一起发送 foo 变量吗?

编辑:这是适用于我的帐户的 javascript,无法为测试用户发送 uid。我重命名了一些查询字符串参数,但是

var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;

// Do a post to the server to finish the logon
// This is a form post since we don't want to use AJAX
var form = document.createElement("form");
form.setAttribute("method", 'post');
form.setAttribute("action", 'BAR>');

var tField = document.createElement("input");
tField.setAttribute("type", "hidden");
tField.setAttribute("name", 'RAHR');
tField.setAttribute("value", accessToken);
form.appendChild(tField);

var uField = document.createElement("input");
uField.setAttribute("type", "hidden");
uField.setAttribute("name", 'foo');
uField.setAttribute("value", uid);
form.appendChild(uField);

document.body.appendChild(form);
form.submit();

//Server side
public ActionResult BAR(string RAHR, int foo)
4

2 回答 2

0

将您的方法从 --> public ActionResult BAR(string RAHR, int foo) 替换为 --> public ActionResult BAR(string RAHR, int? foo)

于 2014-09-05T20:57:44.663 回答
0

事实证明,进来的价值太大了。我猜是导致 int 参数溢出而不是给出一个奇怪的值 MVC 将其归零。

于 2013-01-18T20:57:10.807 回答