asp.net详细模型逻辑

时间:2013-08-06 14:26:59

标签: asp.net-mvc

我遇到了程序逻辑问题..

好的,让我们开始。

我在模型中有2个类。

namespace Korbball.Models
{
public class Clubs
{
    public int id { get; set; }
    public string name { get; set; }
    public string state { get; set; }
    public string description { get; set; }
}

public class ClubDetails : Clubs
{
    public string website { get; set; }
    public string banner { get; set; }
}

}

在第一步中,我将通过俱乐部课程的条目呼叫所有俱乐部的概述。 如果我点击一个俱乐部,就会有一个链接 - >网站/俱乐部/详细信息/编号

现在,我将在此视图中显示来自Clubs和ClubDetails的所有数据。

此数据存储在数据库中。

    private static List<Clubs> clubs = new List<Clubs>();
    KorbballEntities db = new KorbballEntities();

    public KorbballRepository()
    {
        var clubsdata = db.Korbball_Clubs.ToArray();
        foreach (var c in clubsdata)
        {
            clubs.Add(new Clubs { id = c.ClubId, name = c.Name, state = c.State });
        }
    }

所以我只得到俱乐部信息的数据。 对于细节,我应该生成包含所有信息的新LIST吗?

希望有人知道我的意思......不能宣布它好多了......

谢谢!

更新: 好吧,我认为问题是,我找不到能教我mvc logic = D

的人

我有很多俱乐部。这个俱乐部有基本信息(姓名,身份证,州)

这个俱乐部还有详细的信息,如描述,横幅,网站等。

我做了一个ModelClass

ClubModel.cs

 public class Clubs
{
public int id { get; set; }
public string name { get; set; }
public string state { get; set; }
public string description { get; set; }
}

public class ClubDetails : Clubs
{
public string website { get; set; }
public string banner { get; set; }
}

我将显示所有俱乐部的列表,其中包含与网站/俱乐部的基本信息

如果我进入详细视图,Clubs / Details / Id我将显示所有信息(基本+详细)

您的解决方案似乎很酷。我无法在互联网上找到任何关于如何在这种情况下建立“最佳实践”方法的想法。

1 个答案:

答案 0 :(得分:0)

俱乐部和细节之间的关系是一对一的吗?这听起来像是基于你如何描述一切,但它没有那么多意义,因为就像有人提到你从俱乐部继承,所以你可以加载Club_Details,你将自动获得俱乐部专栏。

如果您的关系是一对多关系,最简单的方法是在模型中建立关联(数据库上的外键关系),然后使用“包含”告诉实体框架你想要相关的实体。我把它快速地放在一起,所以语法可能不完美,基本的想法是查看“包含”。

这种逻辑是有缺陷的,因为它正在加载许多俱乐部,然后加载俱乐部的细节,你想要修复它。

private static List<Clubs> clubs = new List<Clubs>();
private List<Club_Details> clubDetails = new List<Club_Details>();
// make a view model class that contains club and club details (one to many)
private ClubData clubdata = new ClubData();

public KorbballRepository()
{
    var clubsdata = db.Clubs.Include("Club_Details").ToArray();
    foreach (var c in clubsdata)
    {
        clubs.Add(new Clubs { id = c.ClubId, name = c.Name, state = c.State });

        /* sample of how to reference the Included entities use the association name
           of Club_Details if it were a one to many relationship, ideally you
           would create a view  model or something with the two classes defined
           and one club and list of club details, then define a list of the view
           model for all Clubs */

         clubDetails = new List<Club_Details>();

         foreach (var d in c.Club_Details)
         { 
              clubDetails.Add(new Club_Details { 
                   website = d.website.ToString(), 
                   banner = d.banner.ToString() 
               });;
          }

    /* load the data to the view model class and loop again */
    }

}