You should probably be using EditorTemplates. These allow you to do excatly what you're describing. If you create a strongly-typed partial view in ~/Views/Shared/EditorTemplates/Material_Select.cshtml (the view has to be named the same as the model) that looks like:
@model Material_Select
<div class="editor-label">
@Html.LabelFor(m => m.MaterialId)
</div>
<div class="editor-field">
@Html.DropDownListFor(m => m.MaterialId, Model.selectList)
</div>
Then in your overall form you can just call:
@Html.EditorFor(m => m.materialSelect)
Which will automatically enumerate your collection and render the editor template for each item in the collection.