2012-05-31 32 views
5

Tôi có một ứng dụng MVC với một số biểu mẫu. Khi biểu mẫu được gửi, nó đã chuyển tọa độ gps của người dùng đến máy chủ. Tôi cũng muốn vượt qua thời gian hiện tại của khách hàng.Biểu mẫu khách hàng gửi ngày giờ, ứng dụng MVC

Có ai có ý tưởng nào là cách tốt nhất để làm điều này không?

Biểu mẫu là biểu mẫu html chuẩn và sử dụng gửi cơ bản.

Biểu mẫu của tôi trông giống như bên dưới. Vì vậy, làm thế nào tốt nhất tôi nên đính kèm giá trị datetime javascript vào cuộc gọi gửi?

  @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

Phần nào không rõ ràng? Làm thế nào để tạo một ngày trong JavaScript? Làm thế nào để gán giá trị của nó cho một đầu vào biểu mẫu? – RedFilter

Trả lời

5

Bạn có thể sử dụng JavaScriptDate chức năng mà được render trên máy khách hàng .

var d = new Date(); 

Sau đó, bạn có thể chuyển biến d cho máy chủ khi bạn gửi tọa độ.

Từ chỉnh sửa của bạn:

Trong phương pháp Checkin của bạn trong Home controller, bạn có thể chỉ định:

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

Để thiết lập giá trị của hckDate, bạn có thể làm:

Trên nút gửi nhấp vào:

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

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

    e.value = new Date(); 
} 

Th sau đó sẽ được gửi đến máy chủ.

+0

@BenCameron Trong câu hỏi của bạn, bạn nói "biểu mẫu được gửi đi thông qua tọa độ gps của người dùng đến máy chủ" - khi bạn gửi các tọa độ, chỉ cần chỉ định biến d quá và nó sẽ được gửi tới máy chủ. Hiểu không? –

+0

Không thực sự. Tôi đã thêm biểu mẫu thứ vào câu hỏi. Vậy làm thế nào tôi có thể gắn giá trị datetime vào form? –

+0

@BenCameron - Chức năng "Checkin" của bạn trong bộ điều khiển Home có thuộc tính ràng buộc mô hình "hckLat", "hckLong", bạn chỉ có thể sửa đổi bộ điều khiển để "hckDate" –

1

sử dụng chức năng javascript:

var currentDateTime = new Date() 

thì có lẽ nhìn vào moment.js để định dạng nó cho bộ điều khiển MVC

Các vấn đề liên quan