将类型从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]"类型的模型项。
有什么想法可以将控制器获得的模型转换为正确的类型吗?
除非我误解了你的问题,否则我认为需要将变量"r"传递到视图中,而不是int Id。
目前看来,int被用作视图的模型,而不是调用db的结果。SP_PartExploder。
int->IEnumerable<int>
,返回单个项:Enumerable.single或Enumerable.Reat
int myInt = 42;
IEnumerable<int> myInts = Enumerable.Repeat(myInt, 1);