将类型从System.Int32更改为System.Collections.Generic.IEnumerable

本文关键字:System Collections Generic IEnumerable 类型 Int32 | 更新日期: 2023-09-27 18:28:19

使用实体框架4、MVC3、C#单击"添加函数导入"后,我在模型中创建了一个类型为"SP_Explorer_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]"类型的模型项。

有什么想法可以将控制器获得的模型转换为正确的类型吗?

将类型从System.Int32更改为System.Collections.Generic.IEnumerable

除非我误解了你的问题,否则我认为需要将变量"r"传递到视图中,而不是int Id。

目前看来,int被用作视图的模型,而不是调用db的结果。SP_PartExploder。

int->IEnumerable<int>,返回单个项:Enumerable.single或Enumerable.Reat

int myInt = 42;
IEnumerable<int> myInts = Enumerable.Repeat(myInt, 1);
相关文章: