2012-05-31 97 views
5

我有一個MVC應用程序與多個窗體。提交表單時,它將用戶gps座標傳遞給服務器。我也想傳遞客戶端當前的日期時間。客戶端窗體提交日期時間,MVC應用程序

有沒有人有任何想法,以最好的方式來做到這一點?

這些表格是標準的html表單,並使用基本的提交。

我的表單看起來像下面那樣。那麼我怎樣才能最好地將JavaScript日期時間值附加到提交調用?

  @using (Ajax.BeginForm("CheckIn", "Home", "Nothing", new AjaxOptions { })) 
      { 
       <fieldset> 
        <p>Move your Tile here to let those around you see it...</p> 
        <input type="hidden" name="lat" id="hckLat" value="" /> 
        <input type="hidden" name="lon" id="hckLon" value="" /> 
        <input type="hidden" name="date" id="hckDate" value="" /> 
        <input type="submit" value="Check In!" /> 
       </fieldset> 
      } 
+0

什麼部分不清楚?如何在JavaScript中創建日期?如何將它的值賦給表單輸入? – RedFilter

回答

5

您可以使用JavaScriptDate函數在客戶機上呈現。

var d = new Date(); 

然後,您可以在提交座標時將變量d傳遞給服務器。

從您的編輯:

Home controllerCheckin方法,你可以指定:

public ActionResult Checkin(string hckLat, string hckLong, string hckDate) 
{ 
    var theDate = hckDate; 
} 

要設置的hckDate值,你可以這樣做:

提交按鈕點擊:

<input type="button" name="theSubmitButton" id="theSubmitButton" value="Button" onClick="setDate();"> 

function setDate() { 
    var e = document.getElementById('hckDate'); 

    e.value = new Date(); 
} 

Th然後將被髮送到服務器。

+0

@BenCameron在你的問題中,你聲明「表單被提交,它通過用戶gps座標傳遞給服務器」 - 當你提交座標時,只需指定變量d,它就會被髮送到服務器。理解? –

+0

不是。我已經給這個問題增加了一個形式。那麼我如何將日期時間值附加到表單中? –

+0

@BenCameron - 你的家庭控制器中的「簽入」功能是否具有模型綁定屬性「hckLat」,「hckLong」,你可以修改控制器採取「hckDate」 –

1

使用JavaScript函數:

var currentDateTime = new Date() 

那麼也許看看moment.js對其進行格式化爲MVC控制器

相關問題