title: Allowing for high level of variation in Actions and Views and Models
body: <p>I am designing a product management system. I am wondering the best way to handle a large amount of variation in each Action/View in my application. The app handles 20 categories and 12 Target Markets, each of which affect the data that needs to be collected for each product. For example, the "QuickAdd" action takes in the core data like Product Name and SKU, plus a few other key pieces of information based on the combo of the Category and Target Market that the product is being added to (examples below). The Category and Target Market are not configurable attributes of the product, the user using the system can only work under a particular combo, for example Toys/USA. The reason for mentioning that is I can't design the form to have sections of attributes for each Category/Market combo, it needs to work like the form is made for just that Category/Market - the user has no knowledge of other combos.</p>
  
  <p>Some examples to hopefully clarify the possible situations:</p>
  
  <blockquote>
    <p>If I am adding a product to category
    Toys with the Target Market USA I need
    to ask for the "Age range" and  "Did
    it pass the safety inspection".</p>
    
    <p>If I am adding a product to category
    Toys with Target Market Mexico, I just
    need to ask for "Age range".</p>
    
    <p>If I am adding a product to the
    category Clothing with the Target
    Market USA I need to ask for the
    "Style" and "Material"</p>
    
    <p>If I am adding a product to the
    category Clothing with the Target
    Market Canada I need to ask for the
    "Style" and "Material" and "USA Price"</p>
    
    <p>We have 20 categories and 12 Target
    Markets, plus there are 10 forms that
    need to behave in this fashion, so in
    theory there are 2400 distinct
    Actions/Views/Models</p>
  </blockquote>
  
  <p>So the question is, in ASP.NET MVC, what is the best way to handle displaying all these dynamic forms and handling the variations of data that gets sent to the action?</p>
  
  <p><strong>EDIT</strong><br>
  A clarification on how the attributes of the product are determined: They are based on the hierarchy of the product belonging to a Category in a Market. For example, it is not the addition of all Toy attributes and USA attributes we'd ask for, it is the attributes of a product that is a Toy sold in the market USA. A Toy sold in the USA needs the "safety inspection" information, but Clothing in the USA does not. A Toy in Mexico also does not need the "safety inspection" information, so that attribute is not inherent to all Toys or all USA products, but rather the fact that is a combo of both Category and Market.</p>