хорошо, так что вы должны посмотреть на это (всегда избавляет меня от неприятностей
public ActionResult SomeActionMethod (FormCollection formCollection)
FormCollection -> вернет коллекциюиз всех полей формы любое поле, которое передается контроллеру через запрос, так что вы можете подключить его и посмотреть, что передается.
все же это не отвечает на ваш вопрос, давайте посмотрим
// эта строка будет отображать скрытое поле с каким-либо значением (это заполнено?)
<%:Html.HiddenFor(m => m[i].Quantity)%>
// почему вы визуализируете текстовое поле для того же поля? это будет принимать то значение, которое установлено вскрытое поле
<%:Html.TextBoxFor(m => m[i].Quantity, new { @class = "quantity", @maxlength = "3", @size = "2" })%>
Итак, мой ответ: удалите скрытое поле, и оно должно работать ...