<p>Given the following class, what is your opinion on the best way to handle create/edit where Attributes.Count  can be any number.</p>

<pre><code>public class Product {
  public int Id {get;set;}
  public string Name {get;set;}
  public IList&lt;Attribute&gt; Attributes {get;set;}
}

public class Attribute {
  public string Name {get;set;}
  public string Value {get;set;}
}
</code></pre>

<p>The user should be able to edit both the Product details (Name) and Attribute details (Name/Value) in the same view, including adding and deleting new attributes.</p>

<p>Handling changes in the model is easy, what's the best way to handle the UI and ActionMethod side of things?</p>

Depends on the experience you are looking to create for the user. I have implemented something similar for tagging content. In the model, Tags are represented as IList, but the UI shows a comma delimited list in a single text field. I then handle merging the items in the list into a string to populate the text field, and I split the input to put items back into the IList in the model.
In my DAL, I then deal with converting the List into LINQ entities, handle inserts and deletes, etc.
It isn't the most straight forward code, but it isn't too difficult to manage and it gives the user an expected interface.
I'm sure there are other ways to handle it but I would focus on what would work best for the user and then work out the mapping details based on that.