您正在视图中填充模型????在 MVC 模式中,视图旨在显示以模型形式传递给它们的数据。填充此模型是控制器的责任。
话虽如此,让我们假设您有一个模型:
public class MyViewModel
{
public int[][] BgtArray { get; set; }
}
在控制器动作中填充并传递给视图:
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new MyViewModel
{
BgtArray = Enumerable
.Range(1, 10)
.Select(
i => Enumerable
.Range(1, 10)
.Select(j => i * j)
.ToArray()
)
.ToArray()
};
return View(model);
}
}
然后我们可以有一个对应的强类型视图,我们可以在其中 JSON 序列化模型并在 javascript 中访问它:
@model MyViewModel
<script type="text/javascript">
var model = @Html.Raw(Json.Encode(Model));
alert(model.BgtArray[1][2]);
</script>
这将在浏览器中呈现如下:
<script type="text/javascript">
var model = {"BgtArray":[[1,2,3],[2,4,6],[3,6,9]]};
alert(model.BgtArray[1][2]);
</script>
就以下行而言:
<input type="hidden" value="@Model.BgtArray" id="BudgetArray"/>
它非常没用,因为您无法将整个复杂对象图存储到隐藏字段中。渲染结果将是:
<input type="hidden" value="System.Int32[][]" id="BudgetArray"/>
这不太可能是您想要实现的目标。