2016-08-26 6 views
0

私はJQuery(Json)の初心者です.JsonテーブルにDateTimeを追加するかどうかはわかりません。ドロップダウンリストがあります。アイテムは自動的にテーブルにデータをロードします。そうするために私はこのようなJSON機能をしようとしています:テーブルにjQuery(Json)のDateTimeを追加する

<script> 

    $(document).ready(function() { 

     $("#departmentId").change(function() { 

      var deptId = $("#departmentId").val(); 
      //$("#courseId").empty(); 
      var json = { departmentId: deptId }; 
      $("#table").empty(); 
      $("#table").append('<table class="table"><tr><th>Course Code</th><th>Name</th><th>Schedule Info</th></tr>'); 
      $.ajax({ 
       type: "POST", 
       url: '@Url.Action("ViewAllScheduleByDept", "ClassSchedule")', 
       contentType: "application/json; charset=utf-8", 
       data: JSON.stringify(json), 
       success: function (data) { 

        $.each(data, function (key, value) { 

         $("#table").append('<tr><td>' + value.Code + '</td><td>' + value.Name + '</td><td>' + value.RoomName + ',' + ***value.StartTime.toDateString() +*** ' </td></tr>'); 

        }); 
        $('#table').append('</table>'); 
       } 
      }); 
     }); 
    }); 
</script> 

、コード、名前とRoomName完璧を表示しますが、私はこれらの3つの項目に沿って追加するのStartTimeを追加した場合、それは何も表示されません。 JsonテーブルにDateTimeを右に変換する方法はありますか?そうでなければ、MVC Razorビューのコード、名前、ルーム名とともに日付の時刻を表示するにはどうすればいいですか?ここで

は私のコントローラである:

[HttpPost] 
    public JsonResult ViewAllScheduleByDept(int departmentId) 
    { 
     var schedules = GetAllSchedule(); 
     var scheduleList = schedules.Where(a => a.DepartmentId == departmentId).ToList(); 
     return Json(scheduleList, JsonRequestBehavior.AllowGet); 

    } 

    private List<ViewSchedule> GetAllSchedule() 
    { 
     List<ViewSchedule> allViewSchedules = scheduleManager.ViewAllSchedule(); 
     return allViewSchedules; 

    } 
} 

とモデル:あなたのエンドポイントが返さ

public class ViewSchedule 
{ 
    public int DepartmentId { get; set; } 
    public string Code { get; set; } 
    public string Name { get; set; } 
    public string RoomName { get; set; } 
    public DateTime StartTime { get; set; } 


} 
+1

'を試してみてください – Shyju

+0

のStartTimeプロパティを呼び出すtoDateString'ずに試してみてください。+' – Hackerman

+1

'$( '#テーブル'))' + value.StartTime.toString( ''doesnの(」')追加意味をなさない –

答えて

1

JSONの日付は、このようないくつかのことになります。 StartTimeプロパティの値を参照してください。

[{ 
    "Code":"SomeCode", 
    "Name":"Some Name", 
    "StartTime" :"/Date(1472239122527)/" 
}] 

これは、取得したDateTime値のEpoch表現です。 jsonシリアライザは、対応するUnixエポック時間(00:00:00、協定世界時(UTC)1970年1月1日木曜日から経過した秒数)に日付時刻の値を変換しました。

しかし、あなたのコードでは、toDateString()というメソッドを呼び出そうとしています。 toDateString()はDateオブジェクトで呼び出される必要があります。

この数値を有効なDateオブジェクトに変換してから、その上でtoDateStringメソッドを呼び出します。

$.each(data, function (key, value) { 

    var dateFormatted = new Date(parseInt(value.StartTime.substr(6))).toDateString(); 
    $("#table").append('<tr><td>' + value.Code 
        + '</td><td>' + value.Name 
        + '</td><td>' + value.RoomName 
        + ',' + dateFormatted + ' </td></tr>'); 

}); 
+0

ありがとう、それは働いています。私はちょうど時間がない場合は、@Shyjuを変更する必要がある日付 – FaHaD

+0

Dateオブジェクトから時間情報を抽出することができます。 Dateのmdnドキュメントを見てください。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date – Shyju

関連する問題