Измените тип с System.Int32 на System.Collections.Generic.IEnumerable - PullRequest
0 голосов
/ 18 марта 2012

Используя Entity Framework 4, MVC3, C #, я создал сложный тип в модели типа «SP_Exploder_Result» после нажатия кнопки «Добавить функцию».

Мой контроллер выглядит следующим образом:

    public ViewResult Exploder(int id)
    {
        var r = db.SP_PartExploder(id);
        return View(id);
    }

Я пытаюсь создать представление и перебрать переданную ему модель:

@model IEnumerable<EM6.Models.SP_PartExploder_Result>
@foreach (var item in Model) {
<tr>
    <td>
        @Html.DisplayFor(modelItem => item.ComponentId)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Name)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Total)
    </td>

Элемент модели, переданный в словарь, имеет тип 'System.Int32', но для этого словаря требуется элемент модели:Тип 'System.Collections.Generic.IEnumerable`1 [EM6.Models.SP_PartExploder_Result]'.

Есть идеи, как преобразовать полученную контроллером модель в правильный тип?

Ответы [ 2 ]

1 голос
/ 18 марта 2012

Если я не понял вашего вопроса, я думаю, что переменная "r" должна быть передана в представление, а не в int Id.

В настоящий момент может показаться, что int используется как модель для представления, а не как результат вашего вызова db.SP_PartExploder.

0 голосов
/ 18 марта 2012

int -> IEnumerable<int>, которые возвращают один элемент: Enumerable.Single или Enumerable.Repeat

int myInt = 42;
IEnumerable<int> myInts = Enumerable.Repeat(myInt, 1);
...