2012-04-16 47 views
0

我用MVC3和Entity Framework工作如何獲得我的觀點看起來像一個時間表

我有一個表:

ID - 星期幾 - 肌肉 - 量的集合 - 客戶

這是一張桌子......這只是一個簡單的小項目。

但我的問題是,我不知道如何得到正確的視圖。

**Monday Tuesday Wednesday Thursday Friday Saturday Sunday** 
    Muscle Muscle  etc... 
    sets  sets 

我覺得我應該做的......首先得到的(這是他創建的)客戶想要鍛鍊的日子名單

型號

fitnessday是被連接的屬性我的數據庫與datacontext。

所以像

public class FitnessDay 
    { 
    public int id { get; set; } 
    public string dayoftheweek{ get; set; } 
    public string muscle{ get; set; } 
    public Nullable<int> sets{ get; set; } 
    public Nullable<int> customerId{ get; set; } 


    public virtual Customer Customers{ get; set; } 
    } 

    public class Customer 
    { 
    public Customer() 
    { 
     this.fitnessDay = new HashSet<fitnessDay>(); 
    } 

    // Primitive properties 

    public int id { get; set; } 
    public string name{ get; set; } 
    public string lastname{ get; set; } 

    // Navigation properties 

    public virtual ICollection<fitnessDay> fitnessDay { get; set; } 

} 

-

private IList<fitnessDay> trainingList= null; 

      public IList<fitnessDay> Training() 
     { 
      string nameOfCustomer= "bob"; 
      var Training1 = db.fitness.Where(c => c.Customer.name== nameOfCustomer); 

      trainingList= Training1.ToList(); 
      return trainingList; 

     } 

控制器

 public ViewResult TrainingView() 
    { 
     var list = model.training(); 

     return View(list); 
    } 

視圖

Don't know how to show it here. 

有人可以幫助我得到了一週的某一天,並把正確的肌肉,並設置它的下面(有可能是每天幾個肌肉)

編輯:新信息添加

+5

[jQuery日曆插件](http://arshaw.com/fullcalendar/)很適合這個賬單。 – 2012-04-16 19:51:02

+0

@RobertHarvey - 那個日曆很漂亮! – 2012-04-16 19:53:29

+0

它看起來不錯。我會嘗試,但我從來沒有使用過jQuery。這可能會使事情更復雜。編輯:我看着它,但我的表很簡單,它沒有時間戳 - 我只是想要正確的數據低於星期幾 – deltu100 2012-04-16 19:57:44

回答

0

這是爲了顯示週期性表,但這是一個偉大的作品 http://isotope.metafizzy.co/ 它確實需要相當數量的jQuery知識,但是,它又是一個非常適合用戶的偉大作品。 也就是說,如果你正在尋找更多的日曆。

編輯 由於jquery真的不是你的東西,所以我認爲這是一個簡單的建議。 在控制器端,加載所有培訓課程ORDER ASC(我不知道如何使用Linq,但肯定可以完成)。我還假設你知道你正在查詢的曲目的BETWEEN日期。 所以在控制器你會集塊巖的日期是這樣的:

public ActionResult Trainings() 
    { 
     //dummy data 
     var trainings = new List<Training>(); 
     trainings.Add(new Training { TrainingDay = DateTime.Now }); 

     var week = new Dictionary<DayOfWeek, List<Training>>() 
     { 
      { DayOfWeek.Monday, new List<Training>() }, 
      { DayOfWeek.Tuesday, new List<Training>() }, 
      { DayOfWeek.Wednesday, new List<Training>() }, 
      { DayOfWeek.Thursday, new List<Training>() }, 
      { DayOfWeek.Friday, new List<Training>() }, 
      { DayOfWeek.Saturday, new List<Training>() }, 
      { DayOfWeek.Sunday, new List<Training>() }, 
     }; 
     for (int i = 0; i < trainings.Count; i++) 
     { 
      switch (trainings[i].TrainingDay.DayOfWeek) 
      { 
       case DayOfWeek.Friday: 
        week[DayOfWeek.Friday].Add(trainings[i]); 
        break; 
       case DayOfWeek.Monday: 
        week[DayOfWeek.Monday].Add(trainings[i]); 
        break; 
       case ..... 

      } 
     } 
     return View(week); 
    } 

這將得到所有的培訓公司在同一天一起(我聽說有人去健身房更是每天一次,不當然如果那是真的)。 現在,你可以有你的觀點強類型,所以將其更改爲類似:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<Dictionary<DayOfWeek, List<Training>>>" %> 

,不要忘記<%@ Import %>培訓namespace最後你查看可能是這樣的:

<table> 
     <tr> 
      <td>Monday</td> 
      <td>Tuesday</td> 
      <td>Wednesday</td> 
      <td>Thursday</td> 
      <td>Friday</td> 
      <td>Saturday</td> 
      <td>Sunday</td> 
     </tr> 
     <tr> 
      <%foreach (KeyValuePair<DayOfWeek, List<Training>> entry in Model){%> 
       <td> 
        <%if (entry.Key == DayOfWeek.Monday){ 
         foreach (var training in entry.Value){ 
         Response.Write(training.TrainingDay); 
         } 
        }%> 
       </td> 
      <%} %> 
     </tr> 
    </table> 

顯然,不是爲條目重複相同的代碼,而是爲Html對象創建擴展方法。

+0

jquery只會使事情更復雜。我只是想知道如何正確地顯示我的數據不足一天。 – deltu100 2012-04-16 20:13:58

+0

我已經編輯了我的答案,使用表格而不是使用jquery – coffeeyesplease 2012-04-16 22:21:37

+0

我今天會試用它,非常感謝 - 我相信我可以使用這個..不能等待回家並嘗試一下。 – deltu100 2012-04-17 09:22:26

相關問題