Кстати метод LINQ тоже работает.
тоящее время, используя приведенный ниже код для создания строкового массива (элементов), который содержит все строковые значения из Request.Form.GetValues ("ElementIdName"), проблема заключается в том, что для того, чтобы это работало, все выпадающие списки в моем представлении должны иметь то же самое имя элемента, которое я не хочу, по понятным причинам. Поэтому мне интересно, есть ли способ получить все строковые значения из Request.Form без явного указания имени элемента. В идеале я хотел бы получить только все значения раскрывающегося списка, я не слишком жарко в C #, но нет никакого способа получить все идентификаторы элементов, начиная с «List» + «**», чтобы я мог назвать свои списки List1 , List2, List3 и т. Д.
Спасибо..
[HttpPost]
public ActionResult OrderProcessor()
{
string[] elements;
elements = Request.Form.GetValues("List");
int[] pidarray = new int[elements.Length];
//Convert all string values in elements into int and assign to pidarray
for (int x = 0; x < elements.Length; x++)
{
pidarray[x] = Convert.ToInt32(elements[x].ToString());
}
//This is the other alternative, painful way which I don't want use.
//int id1 = int.Parse(Request.Form["List1"]);
//int id2 = int.Parse(Request.Form["List2"]);
//List<int> pidlist = new List<int>();
//pidlist.Add(id1);
//pidlist.Add(id2);
var order = new Order();
foreach (var productId in pidarray)
{
var orderdetails = new OrderDetail();
orderdetails.ProductID = productId;
order.OrderDetails.Add(orderdetails);
order.OrderDate = DateTime.Now;
}
context.Orders.AddObject(order);
context.SaveChanges();
return View(order);