Извините, мой предыдущий ответ был неверным.
Мне кажется, проблема в том, что GetEnumerator
возвращает IEnumerator<SelectListItem>
, а не IEnumerator<Hexsolve.Data.BusinessObjects.HSPartList>
, к которому вы пытаетесь получить доступ.
Я бы предложилдолжно работать что-то вроде следующего:
<% foreach (SelectListItem item in (SelectList)ViewData["Parts"])
{ %>
<option value="<%= item.Value %>"><%= item.Text %></option>
<% } %>
Если вам нужно объединить PartName
и IssueNo
в свойстве Text
, которое, как вам кажется, вы пытаетесь сделать, вы можете сделать это, покасоздание списка выбора.
Таким образом, вы можете получить что-то вроде:
public class Part
{
public int Id { get; set; }
public int IssueNo { get; set; }
public string PartName { get; set; }
}
и
var parts = new List<Part>{
new Part { Id = 1, IssueNo = 1, PartName = "Spanner" },
new Part { Id = 2, IssueNo = 1, PartName = "Hammer" }
};
var selectList = new SelectList(
parts.Select(p =>
new { Id = p.Id,
Name = p.PartName + " " + p.IssueNo.ToString()}),
"Id",
"Name");
foreach (var item in selectList)
{
Console.WriteLine(item.Value);
Console.WriteLine(item.Text);
}
/*
Output:
1
Hammer 1
2
Spanner 1
*/
Надеюсь, что это поможет!