,參數字典包含非空值類型「System.Int32」的參數'foo'的空項,從我在其他帖子中看到的這個錯誤是因爲方法簽名中給出的參數didn' t匹配發布的輸入名稱。或者說,價值甚至沒有被髮送。對於方法
首先這個頁面是登錄到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)
這真的很難知道發生了什麼事情,當你沒有給出任何代碼。 –
好吧,很難說沒有代碼的東西,但是你的錯誤信息說你應該把'foo'類型的'int'改成'int?'。 'int'不允許有'null'值。 –
對,我認爲代碼不會幫助,因爲將數據交給方法時發生錯誤。該方法接受一個字符串和一個int,並且都不能爲空。我不希望它們爲空。 我將添加JavaScript,但它從C#fb sdk複製。 – ProdigousRanger