传递多个数组进行查看

时间:2012-02-24 12:24:56

标签: asp.net-mvc-3

我将我的模型创建为多个数组myArr [10,10]。 然后我希望将该模型返回到我的视图中,并希望能够检查数组中的值。

我的代码: 模型

  public class MapModel
{
    private int[,] mapTilesArray = new int[10, 10];

    public int[,] MapTilesArray
    {
        get { return mapTilesArray; }
        set
        {
           mapTilesArray = value;
        }

    }

    public MapModel()
    {
        for (int i = 0; i < 10; i++)
            for (int j = 0; j < 10; j++)
            {
                mapTilesArray[i, j] = 1;
            };
    }

CONTROLER

   public MapModel mapModel = new MapModel();

    public ActionResult Index()
    {
        var map = mapModel.MapTilesArray;

        return View(map);
    }

视图

  @model GraAjaxTeamProject.Models.MapModel

 @{
ViewBag.Title = "Home Page";
 }


 @for (int i = 0; i < 10; i++)
 {
<div>
@for (int j = 0; j < 10; j++)
{
  if (Model.MapTilesArray[i,j] == 1)
{
     <div style="height:30px;width:30px;border:1px solid gray;background-color:red;display:inline-block;"></div>
}  


}
</div>
 }

当我运行这个时我有错误传递到字典中的模型项是'System.Int32 [,]'类型,但是这个字典需要一个类型为'GraAjaxTeamProject.Models.MapModel'的模型项。

1 个答案:

答案 0 :(得分:2)

您正在将MapModel传递给您的视图。将@model更改为int[,]或从您的调用中移除.MapTilesArray

从您视图中给出的示例中,您应该更改行

public ActionResult Index()
{
    var map = mapModel.MapTilesArray;

    return View(map);
}

public ActionResult Index()
{
    return View(mapModel);
}