传递给视图的模型为空。我究竟做错了什么?

时间:2015-01-13 05:24:22

标签: asp.net-mvc

我的控制器

public PartialViewResult AllMetalStockItems()
{
  var allMetalDtos = this.metalStockRepository.GetAllMetalSotckDtos();
  var allMetalViewModels = Mapper.Map<IEnumerable<MetalStockDto>,IEnumerable<MetalStockViewModel>>(allMetalDtos);
  return PartialView("_AllMetalStockItems",allMetalViewModels);
}

查看

@model IEnumerable<GlassContract.Models.ViewModels.Warehouse.MetalStockViewModel>

<table>
<tr>
    <th>
        Metal Id
    </th>
    <th>
        Colour Code
    </th>
    <th>
        Length
    </th>
    <th>
        Quantity In Stock
    </th>
</tr>
@foreach (var item in Model)
{
    <tr>
        <td>@item.MetalId </td>
        <td>@item.ColorCode </td>
        <td>@item.Length </td>
        <td>@item.QuantityInStock </td>
    </tr>
}

</table>

我收到以下消息

  

对象引用未设置为对象的实例   第18行:@foreach(@Model中的var项目)

这是CreateMap

 public static void ConfigureMetalStockMapping()
    {
        Mapper.CreateMap<MetalStockDto, MetalStock>();
        Mapper.CreateMap<MetalStock, MetalStockDto>();

        Mapper.CreateMap<MetalStockViewModel, MetalStockDto>();
        Mapper.CreateMap<MetalStockDto, MetalStockViewModel>();
        Mapper.CreateMap<IEnumerable<MetalStockDto>, IEnumerable<MetalStockViewModel>>();
        Mapper.CreateMap<IEnumerable<MetalStockViewModel>, IEnumerable<MetalStockDto>>();
    }

metalStockRepository.GetAllMetalSotckDtos()工作正常,测试也没有问题。我正在使用Automapper进行映射。

1 个答案:

答案 0 :(得分:1)

我意识到了

@Html.Partial("_AllMetalStockItems")

不调用控制器+动作
我把它改成了

@Html.Action("AllMetalStockItems","MetalStock")

这解决了我的问题。感谢您的努力,我不得不为没有发布具有此代码位的视图而道歉。