Если у вас есть несколько элементов управления с одинаковыми именами, они являются значениями, разделенными запятыми. Другими словами:
string catIDs = form["catIDs"];
catIDs это "1,2,3, ..."
Таким образом, чтобы получить все значения, вы должны сделать это:
string [] AllStrings = form["catIDs"].Split(',');
foreach(string item in AllStrings)
{
int value = int.Parse(item);
// handle value
}
Или используя Linq:
var allvalues = form["catIDs"].Split(',').Select(x=>int.Parse(x));
Тогда вы можете перечислить все значения.