2015-02-12 3 views
0

Я работаю над программой, в которой я отправляю переменную DateTime в сортируемый jQuery DataTable. Это конструктор в моем файле «Модель»:Параметры DateTime в MVC

public StudentDailyStatus(int studentID, DateTime startDate, DateTime endDate, string code, string status, int goodDays, int badDays, int leave, int lengthOfStay) 

А потом вот те ценности, которые я пытаюсь поместить в объект:

new StudentDailyStatus(1, (2015, 1, 1), (2015, 2, 1), "1","Normal","2",0,0,0), 

Моя ошибка будет: «[файл ] не содержит конструктор, который принимает 4 аргумента ".

Но у меня возникают проблемы с параметрами startDate и endDate. Как использовать переменные DateTime? Спасибо за помощь!

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web.UI.WebControls; 
using SAAS.Models; 

namespace SAAS.Services 
{ 
    public class StudentDailyStatusService 
    { 
     private static readonly List<StudentDailyStatus> StudentDailyStatuses; 

     static StudentDailyStatusService() 
     { 
      StudentDailyStatuses = new List<StudentDailyStatus> 
      { 
       // StudentID, StartDate, EndDate, Code, Status, GoodDays, BadDays, Leave, LengthOfStay 
       new StudentDailyStatus(1, new DateTime(2015, 1, 1), new DateTime(2015, 2, 1), "1","Normal",2,0,0,0), 
       new StudentDailyStatus(1, new DateTime(2015, 1, 3), new DateTime(2015, 1, 4), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 1, 5), new DateTime(2015, 1, 6), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 1, 7), new DateTime(2015, 1, 8), "1","Normal",0,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 1, 9), new DateTime(2015, 1, 10), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 1, 11), new DateTime(2015, 1, 13), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 1, 12), new DateTime(2015, 1, 14), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 1, 15), new DateTime(2015, 1, 16), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 1, 15), new DateTime(2015, 1, 16), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 1, 19), new DateTime(2015, 1, 20), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 1, 21), new DateTime(2015, 1, 22), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 1, 23), new DateTime(2015, 1, 24), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 1, 25), new DateTime(2015, 1, 26), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 1, 29), new DateTime(2015, 1, 31), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 1, 31), new DateTime(2015, 2, 1), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 2, 2), new DateTime(2015, 2, 3), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 2, 4), new DateTime(2015, 2, 5), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 2, 6), new DateTime(2015, 2, 7), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2105, 2, 8), new DateTime(2015, 2, 9), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 2, 10), new DateTime(2015, 2, 11), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 2, 12), new DateTime(2015, 2, 13), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 2, 14), new DateTime(2105, 2, 15), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 2, 16), new DateTime(2015, 2, 17), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 2, 18), new DateTime(2015, 2, 19), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 2, 20), new DateTime(2015, 2, 21), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 2, 22), new DateTime(2015, 2, 23), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 2, 24), new DateTime(2015, 2, 25), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 2, 26), new DateTime(2015, 2, 27), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 2, 28), new DateTime(2015, 3, 1), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 3, 2), new DateTime(2015, 3, 3), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 3, 4), new DateTime(2015, 3, 5), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 3, 6), new DateTime(2015, 3, 7), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 3, 8), new DateTime(2015, 3, 9), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 3, 10), new DateTime(2015, 3, 11), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 3, 12), new DateTime(2015, 3, 13), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 3, 12), new DateTime(2015, 3, 15), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 3, 16), new DateTime(2015, 3, 17), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 3, 18), new DateTime(2015, 3, 19), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 3, 20), new DateTime(2015, 3, 21), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 3, 22), new DateTime(2015, 3, 23), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 3, 24), new DateTime(2015, 3, 25), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 3, 26), new DateTime(2015, 3, 27), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 3, 28), new DateTime(2015, 3, 29), "1","Normal",2,0,0,2), 
       new StudentDailyStatus(1, new DateTime(2015, 3, 30), new DateTime(2015, 4, 2), "1","Normal",2,0,0,2) 
      }; 
     } 

     public List<StudentDailyStatus> GetStudentDailyStatuses(int start, int length) 
     { 
      return FilterStudentDailyStatuses().Skip(start).Take(length).ToList(); 
      //return StudentAllotments.ToList(); 
     } 

     public int Count() 
     { 
      return FilterStudentDailyStatuses().Count(); 
     } 

     public IQueryable<StudentDailyStatus> FilterStudentDailyStatuses() 
     { 
      IQueryable<StudentDailyStatus> results = StudentDailyStatuses.AsQueryable(); 

      return results; 
     } 
    } 
} 

И файл, который заполняет таблицу является:

@{ 
    ViewBag.Title = "Student - Daily Status"; 
    ViewBag.SubTitle = "Status History"; 
} 

@Html.Partial("_StudentNavPartial") 
@Html.Partial("_StudentSearchBar") 
<div class="container-fluid left"> 
    <h4>@ViewBag.SubTitle</h4> 

    <div class="container-fluid left"> 
     <table id="StudentDailyStatusTable" class="table table-striped table-bordered table-hover text-nowrap"> 
      <thead> 
       <tr> 
        <th data-column="StudentID">Student ID</th> 
        <th data-column="StartDate" class="text-center" id="TDtooltip" data-toggle="tooltip" data-placement="bottom" data-original-title="Date Attendance Started" data-container="body">Start Date</th> 
        <th data-column="EndDate" class="text-center" id="TDtooltip" data-toggle="tooltip" data-placement="bottom" data-original-title="Date Attendance Ended" data-container="body">End Date</th> 
        <th data-column="Code" class="text-left" id="TDtooltip" data-toggle="tooltip" data-placement="bottom" data-original-title="Attendance Status Code" data-container="body">Code</th> 
        <th data-column="Status" class="text-center" id="TDtooltip" data-toggle="tooltip" data-placement="bottom" data-original-title="Attendance Status Code" data-container="body">Status</th> 
        <th data-column="GoodDays" class="text-center" id="TDtooltip" data-toggle="tooltip" data-placement="bottom" data-original-title="Payable Days for the Student" data-container="body">Good Days</th> 
        <th data-column="BadDays" class="text-left" id="TDtooltip" data-toggle="tooltip" data-placement="bottom" data-original-title="Leave Days Paid or Unpaid for the Student" data-container="body">Bad Days</th> 
        <th data-column="Leave" class="text-center" id="TDtooltip" data-toggle="tooltip" data-placement="bottom" data-original-title="Leave Days for which the Sudent is Not Paid" data-container="body">Leave<br /> Status</th> 
        <th data-column="LengthOfStay" class="text-center" id="TDtooltip" data-toggle="tooltip" data-placement="bottom" data-original-title="Days between Enrollment and Termination" data-container="body">Length of Stay</th> 
       </tr> 
      </thead> 
     </table> 
    </div> 
</div> 

@section scripts 
{ 
    @Scripts.Render("~/bundles/dataTables") 

    <script type="text/javascript"> 
     $.extend($.fn.dataTable.defaults, { 
      'pagingType': 'full_numbers', 
      'pageLength': 10, 
      'language': { 
       'paginate': { 
        'first': '&laquo;', 
        'last': '&raquo;', 
        'previous': '&lsaquo;', 
        'next': '&rsaquo;' 
       }, 
       'info': 'Displaying _START_-_END_ of _TOTAL_', 
       'infoEmpty': 'Displaying 0 to 0 of 0', 
       'infoFiltered': '', 
       'search': '', 
       'zeroRecords': 'No matching records found' 
      }, 
      //'dom': '<"top"f>rt<"bottom"<"pull-left"l><"pull-right"i>p<"clear">>', 
      'dom': '<"top">rt<"bottom"<"pull-left"l><"pull-right"i>p<"clear">>', 
      'initComplete': function (settings, json) { 
       $('.dataTables_filter input[type=search]').attr('placeholder', 'Search'); 
      } 
     }); 

     $(function() { 

      //jQuery(oTable.fnGetNodes()).tooltip({ //tooltip plugin for jQuery! 
      // "delay": 250, 
      // "track": true 
      //}); 

      $('#searchButton1').click(function() { 
       var filtering = ""; 
       var number = 0; 
       var filterType = ""; 
       if ($('#searchSsn').val() != '') { 
        filtering = $('#searchSsn').val(); 
       } 
       else if ($('#searchStudentName').val() != '') { 
        filtering = $('#searchStudentName').val(); 
        filterType = "Name"; 
       } 
       else if ($('#searchStudentID').val() != '') { 
        filtering = $('#searchStudentID').val(); 
        filterType = "StudentID"; 
       } 
       //Search to get studentID number and count number of results and put into "number" 
       if(number == 1) 
       { 
        //Filter for the one studentID retrieved from the database 
       } 
       else if(number == 0) 
       { 
        //Show the "no results found" window 
       } 
       else 
       { 
        //Multiple results, show the dialog box that will allow the users to choose the correct student 
       } 
      }); 

      $('#StudentDailyStatusTable').dataTable({ 
       'ajax': { 
        type: 'POST', 
        url: '@Url.Action("GetData", "StudentDailyStatus")', 
        //data: function (d) { 

        //} 
       }, 
       columns: [ 
       { 
        data: 'StudentID', 
        visible: false 
       }, 
       { 
        data: 'StartDate', 
        sortable: true, 
        className: "text-center" 
       }, 
       { 
        data: 'EndDate', 
        sortable: true, 
        className: "text-center" 
       }, 
       { 
        data: 'Code', 
        sortable: true, 
        className: "text-center" 
       }, 
       { 
        data: 'Status', 
        sortable: true, 
        className: "text-center" 
       }, 
       { 
        data: 'GoodDays', 
        sortable: true, 
        className: "text-center" 
       }, 
       { 
        data: 'BadDays', 
        sortable: true, 
        className: "text-center" 
       }, 
       { 
        data: 'Leave', 
        sortable: true, 
        className: "text-center" 
       }, 
       { 
        data: 'LengthOfStay', 
        sortable: true, 
        className: "text-center" 
       } 
       ], 
       //jQueryUI: true, 
       sort: true, 
       ordering: true, 
       order: [0, 'StartDate'], 
       processing: true, 
       serverSide: true 
      }); 

      //$('#TDtooltip').tooltip({ 
      // delay: 0, 
      // track: true, 
      // fade: 100 
      //}); 
      //$('td').tooltip({ 
      // delay: 0, 
      // track: true, 
      // fade: 100 
      //}); 
      $('[data-toggle="tooltip"]').tooltip({ 
       delay: 0, 
       track: true, 
       fade: 100 
      }); 

     }); 
    </script> 

} 

Хорошо, вот контроллер:

using System; 
using System.Collections; 
using System.Collections.Generic; 
using System.Data; 
using System.Data.Entity; 
using System.Linq; 
using System.Net; 
using System.Web; 
using System.Web.Mvc; 
using SAAS.Models; 
using SAAS.Services; 

namespace SAAS.Controllers 
{ 
    public class StudentDailyStatusController : Controller 
    { 

     // GET: StudentDailyStatus 
     public ActionResult DailyStatus() 
     { 
      return View(); 
     } 
     public JsonResult GetData(DTParameters dtModel, FilterViewModel filterModel) 
     { 
      try 
      { 
       List<StudentDailyStatus> data = new StudentDailyStatusService().GetStudentDailyStatuses(dtModel.Start, dtModel.Length); 
       int count = new StudentDailyStatusService().Count(); 
       DTResult<StudentDailyStatus> result = new DTResult<StudentDailyStatus> 
       { 
        draw = dtModel.Draw, 
        data = data, 
        recordsFiltered = count, 
        recordsTotal = count 
       }; 
       return Json(result); 
      } 
      catch (Exception ex) 
      { 
       return Json(new { error = ex.Message }); 
      } 
     } 

    } 
} 

А вот файл "модели":

using System; 
using System.ComponentModel.DataAnnotations; 
using System.Data.Entity; 

namespace SAAS.Models 
{ 
    public class StudentDailyStatus 
    { 
     public StudentDailyStatus(int studentID, DateTime startDate, DateTime endDate, string code, string status, int goodDays, int badDays, int leave, int lengthOfStay) 
     { 
      StudentID = studentID; 
      StartDate = startDate; 
      EndDate = endDate; 
      Code = code; 
      Status = status; 
      GoodDays = goodDays; 
      BadDays = badDays; 
      Leave = leave; 
      LengthOfStay = lengthOfStay; 
     } 

     [Key] 
     public int StudentID { get; set; } 
     public DateTime StartDate { get; set; } 
     public DateTime EndDate { get; set; } 
     public string Code { get; set; } 
     public string Status { get; set; } 
     public int GoodDays { get; set; } 
     public int BadDays { get; set; } 
     public int Leave { get; set; } 
     public int LengthOfStay { get; set; } 

    } 

} 
+0

Давайте посмотрим вашу ошибку и давайте посмотрим код, который вы имеете написано. –

+0

@JustinRusso The код: 'code'public StudentDailyStatus (интермедиат studentID, DateTime STARTDATE, DateTime ENDDATE, строка кода, статус строка, INT Gooddays, внутр BaDDays, внутр оставить, внутр lengthOfStay)' Код ' и ' Код «И вот вот значения, которые я пытаюсь помещать в объект: new StudentDailyStatus (1, (2015, 1, 1), (2015, 2, 1)», «1», «Normal», «2», 0,0,0) 'code' Ошибка: он не принимает конструктор, который принимает 4 аргумента. Итак, я думаю, что я ввожу даты неправильно как-то –

+0

Можете ли вы отредактировать свое оригинальное сообщение и вставить код в свой? –

ответ

0

Хорошо, если вы вводите даты, как это, (2015, 2, 1) то вы ошибаетесь ,

Вы должны передать ваши даты в качестве аргументов, как это ... new DateTime(2015, 2, 1)

Таким образом, это должен быть ваш вызов конструктора ...

new StudentDailyStatus(1, new DateTime(2015, 1, 1), new DateTime(2015, 2, 1), "1","Normal","2",0,0,0) 
+0

Хорошо, спасибо! Есть ли способ сделать это, но сделать его форматировать?Когда я запускаю программу и получаю значения даты с jQuery, чтобы поместить ее в таблицу, столбцы StartDate и EndDate заполняются значениями, которые выглядят следующим образом:/Date (1420088400000) /. Любые мысли о том, как это сделать, отображаются в формате мм/дд/гггг? Спасибо! –

+0

Да, когда вы назначаете значение в своей переменной даты переменной, вы делаете «.ToString». Так что просто передайте в формате ... dateTime.ToString («MM/dd/yyyy», CultureInfo.InvariantCulture); –

+0

Как это работает в этом маленьком блоке: {данные: 'StartDate', sortable: true, className: "text-center"},? Я заполняю свои DataTables в стеке блоков, подобных этому, и у меня возникают проблемы с выяснением форматирования в этом случае ... –

0

Вы просто отправляете ("2015,01 ,. .. "), а не дату. Сначала необходимо создать объект dateTime, а затем отправить его в конструктор.

new Date(year, month, day, hours, minutes, seconds, milliseconds); 

Для дальнейшей контрольной проверки http://www.w3schools.com/jsref/jsref_obj_date.asp

+0

FYI - Правильная идея, но ваша ссылка предназначена для JS ... этот код является C#. –

0

(2015, 1, 1) не DateTime Значение ... использовать вместо new DateTime(2015, 1, 1)

Смежные вопросы