2013-07-03 171 views
0

是否可以從javascript(Session/ViewState)中設置值並在不使用隱藏字段的情況下在C#中獲取值?
從JavaScript設置會話值並獲取C#中的會話值


其工作存儲從JavaScript中的價值,並提供給獲得在C#中的值(page.request [「令牌」]),但它不是爲我工作,因爲那裏有一個回傳行動「 form.submit();」

function setToken(Token) { 
    try { 
     var form = document.createElement("form"); 
     var field = document.createElement("input"); 
     field.setAttribute("type", "hidden"); 
     field.setAttribute("name", 'Token'); 
     field.setAttribute("value", accessToken); 
     form.appendChild(field); 
     document.body.appendChild(form); 
     form.submit(); 
    } catch (err) { 
    } 
} 

回答

0

如果您想要將客戶端代碼中的值提交給服務器端代碼,則需要提交某種請求。表單POST是一個辦法,但如果你不想讓頁面重新加載它同樣不失爲一個AJAX請求:

function setToken(accessToken) { 
    $.post('/SetToken', { Token: accessToken }); 
} 

使用jQuery那裏它會爲您節省大量參與的麻煩讓AJAX在各種瀏覽器中以相同的方式工作。

在示例中,我向一個名爲/SetToken的頁面發佈了一個請求,該頁面可能是您的網站中任何可以更新令牌的代碼。你自己的例子提交一個沒有action的表單,這意味着它會提交到當前頁面。你也可以很容易地做到這一點

$.post(location.href, { Token: accessToken });