2014-08-27 128 views
0

我正在開發一個應用程序,它有很多客戶端JavaScript處理導航響應應用程序(最終由一個巨大的形式組成)周圍。在服務器端訪問客戶端變量

基本上,隨着用戶在表單中前進(即按下一個在javascript中處理客戶端的按鈕),我需要存儲用戶按下按鈕的時間戳。

當觸發按鈕事件時,我在JavaScript變量中存儲時間戳。

現在,當用戶按下表單上的提交按鈕並將POST請求發送到服務器時,我需要發送這些變量的值。

任何想法,我可以做到這一點?

+3

asp在serv上運行呃,js在服務器上運行。如果你想從服務器訪問JS中的東西,你需要讓JS通過Ajax將它發送回服務器。 – 2014-08-27 16:59:01

+2

我認爲你的意思是「js在*客戶*上運行」。 – 2014-08-27 18:19:15

回答

1

使用隱藏輸入來存儲DateTime值,並更新按鈕單擊事件中的值。理想情況下,根據視圖模型中的屬性生成此輸入,否則,向您添加一個附加參數以便接受日期。例如

選項1:將其他屬性添加到您的視圖模型中,例如public DateTime UserDate { get; set; }並在視圖

@Html.HiddenFor(m => m.UserDate) 

和在腳本,更新它的值

$('#UserDate').val((new Date()).toUTCString()); 

選項2:如果沒有額外的視圖模型屬性

<input type="hidden" id="UserDate" name="UserDate" /> 

和在後的方法

[HttpPost] 
public ActionResult YourMethod(YourModel model, DateTime userDate) 
{ 
0

使用隱藏字段應該可以解決您的問題。用你想要的時間更新JS中的隱藏字段並訪問服務器端的

+0

你有沒有可能提供一個傳遞的代碼示例,說一個基本的價值?乾杯 – user3556163 2014-08-27 17:08:38

+0

請檢查這個[鏈接](http://www.dotnetcurry.com/showarticle.aspx?ID=203) – 2014-08-27 17:13:44

+0

這似乎不是MVC – user3556163 2014-08-27 17:19:14

0

您可以將時間戳存儲在隱藏的div中,然後檢索並通過ajax發送。或者你可以像knockoutjs這樣的數據綁定框架,甚至可以使用signalR將其立即發送回服務器。

許多方法來剝皮這隻貓。

相關問題