我會爲屬性類型創建一些域模型。
public enum AttributeTypeEnum
{
Currency,
Range,
List,
Number,
Text,
Boolean
}
public interface class IAttribute
{
int Id { get; set; }
string Name { get; set; }
AttributeTypeEnum AttType { get; set; }
}
public abstract class BaseAttribute
{
int Id { get;set;}
string Name { get;set;}
AttributeTypeEnum AttType { get; set; }
}
public class RangeAttribute<T> : BaseAttribute
{
T StartValue { get;set; }
T EndValue { get; set; }
}
然後,每個屬性的一個或多個類別
public class CategoryAttribute
{
int Id { get; set; }
IAttribute Attribute { get; set; }
}
關聯然後可以有屬性的列表,針對每個類別
public class CategoryAttributeService()
{
public IList<CategoryAttributes> GetAttributes(int CategoryId)
{
return new IList<CategoryAttributes>();
}
}
你的控制器就可以返回這些列表ViewData.Model中的屬性。
// controller action
public class CategoryAttributeController : Controller
{
public ActionResult CategoryAttributes(int categoryId)
{
CategoryAttributeService cas = new CategoryAttributeServices();
ViewData.Model = new CategoryAttributeViewData(categoryId)
{
Attributes = cas.GetAttributes(categoryId);
};
return View();
}
}
,讓你的視圖處理的每個項目的類型和改變每個項相應地即一個布爾值將有一個複選框(與具有開始和結束值的範圍)的形式控制/顯示,物料可能是一個列表框等 你有一些關於如何處理渲染的選擇,你可以創建一個單獨的.ascx控制每個屬性類型生成表單控件,或者按照下面創建一個HTML helper方法
<%@ Page Title="" Language="C#" Inherits="ViewPage<CategoryAttributeViewData>" %>
<% foreach(CategoryAttribute attribute in ViewData.Model.Attributes) { %>
<%= Html.RenderAttribute(attribute) %>
<% } %>
和幫手方法如
public static string RenderAttribute(this HtmlHelper, ICategoryAttribute att)
{
StringWriter stringWriter = new StringWriter();
using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter))
{
switch(att.AttributeType)
{
case AttributeDataType.Boolean:
CreateCheckBox(writer, att);
break;
case AttributeDataType.List:
CreateListBox(writer, att);
break;
// Other types
}
}
stringWriter.ToString();
}
編輯:我有點離開以上所以如果我正確地理解這一點,每個市場都有一些類別(一對多)說美國和服裝。 類別服裝可以出現在許多市場。 每個類別有許多屬性(一對多)(服裝:顏色,大小),並且每個屬性可以有許多市場(一對多)
- 市場的列表
- 類別
的列表
- MarketCategories名單
- CategoryAttributes名單
- 屬性的列表
- AttributeMarkets名單
市場>市場分類>類別屬性>屬性>屬性市場
這是正確的嗎?
Mac。
不要落入一個類別中的所有產品跟蹤所有該類別的屬性?對於每個目標市場的屬性可以這麼說嗎? – 2009-10-22 17:19:30
或者,分類與目標市場分級之間的關係?類別 - >目標市場 - >屬性集 – 2009-10-22 17:22:29
產品屬性集合是否等於類別屬性集合加上目標市場屬性集合,目標市場依賴於類別? – 2009-10-22 17:26:09