做asp.net mvc5的最佳方法是什么?

时间:2015-08-19 17:38:26

标签: c# asp.net asp.net-mvc

我有一个问题,我想制作一个学习asp.net mvc的项目。 我想有一个电子商务网站,所以我想出了这个模型。

    class Product
{
    [Key]
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
    public string Description { get; set; }
    public bool Available { get; set; }
}

但是当我添加一个项目时,我也希望选择下载不同的物品,如衣服,汽车等。最好的方法是什么?

我想我可以像这样做一个枚举:

public enum ProducType
{
    Car,
    Clothes
}

我看到枚举的唯一不足之处是我必须对值进行硬编码,如果我想在另一天添加另一个值而不是我需要更改代码的话。

我想我可以创建一个名为ProductType的新模型,它只接受一个名为Type的ID和一个String并建立一个关系。像这样:

    class Product
{
    [Key]
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
    public string Description { get; set; }
    public bool Available { get; set; }

    [ForeignKey("Product")]
    public int ProductId { get; set; }
    public virtual ProductType Product { get; set; }
}

class ProductType
{
    public int Id { get; set; }
    public string Type { get; set; } 
}

这里最好的方法是什么?

5 个答案:

答案 0 :(得分:2)

您最好创建产品和类别模型类,并为它们添加关系。如果您在不久的将来添加新类别,则无法进行新部署。

答案 1 :(得分:1)

您可以使用列表而不是enum,而只需使用list.Add方法

答案 2 :(得分:1)

你的第二个解决方案很好,

class Type
{
    public int Id { get; set; }
    public string Type { get; set; } 
} 

正如您所说,您可以拥有产品类和类型类,它们之间存在关系。如果您需要更改下拉值,那么您可以更新它们在数据库中,您无需更改代码。

答案 3 :(得分:1)

您可能会添加/更新/删除很多类别,因此最佳选择是两个模型类并将您的类别存储在数据库中。通过这种方式,您可以轻松更改数据而无需更改代码。

答案 4 :(得分:0)

" 我有一个问题,我想创建一个项目来学习asp.net mvc 。我想有一个电子商务网站,所以我想出了这个模型。"

我觉得有趣的是你尝试学习ASP.NET MVC5已经实现了如此复杂的目标,例如电子商务。

但是,我的提示是;

  • 首先学习概念;

  • 因此,请以简单的方式学习如何使用它们;

  • 然后尝试复杂的事情;

这是一个很棒的官方入门教程:

http://www.asp.net/mvc/overview/getting-started/introduction/getting-started