0

私はMVC3とエンティティフレームワークを使用しています

私は次のようなテーブルを持っています:

id-曜日-筋肉-セットの量-顧客

これは1つのテーブルです...これは単純な小さなプロジェクトです。

しかし、私の問題は、適切なビューを取得する方法がわからないことです。

  **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.

誰かが私が曜日を取得し、適切な筋肉を配置してその下に置くのを手伝ってくれますか(1日にいくつかの筋肉がある可能性があります)

編集:新しい情報が追加されました

4

1 に答える 1

0

これは周期表を表示するために作成されましたが、これはuiの優れた部分です http://isotope.metafizzy.co/ かなりの量のjqueryの知識が必要ですが、繰り返しになりますが、非常に適応性の高いuiの優れた部分です。つまり、もちろん、カレンダーよりももう少し何かを探している場合です。

編集 jqueryは実際にはあなたのものではないので、ここに私が簡単な提案だと思うものがあります。コントローラー側で、すべてのトレーニングセッションをロードします。ORDERASC(Linqの操作方法はわかりませんが、確実に実行できます)。また、クエリしているトレインの日付の間を知っていることを前提としています。したがって、コントローラーでは、次のように日付を集約します。

    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);
    }

これにより、同じ日にすべてのトレーニングが一緒になります(1日に1回以上ジムに通う人もいると聞きましたが、それが本当かどうかはわかりません)。これで、ビューを強く入力できるようになったので、次のように変更します。

<%@ 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オブジェクトの拡張メソッドを作成できます。

于 2012-04-16T20:03:06.627 に答える