我将我的模型创建为多个数组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'的模型项。
答案 0 :(得分:2)
您正在将MapModel传递给您的视图。将@model更改为int[,]
或从您的调用中移除.MapTilesArray
。
从您视图中给出的示例中,您应该更改行
public ActionResult Index()
{
var map = mapModel.MapTilesArray;
return View(map);
}
要
public ActionResult Index()
{
return View(mapModel);
}