javascript - MVC 将模型数据传递到 JavaScript
问题描述
所以我试图从我的模型中传递数据(int-Array)......
namespace MvcApplication2.Models {
public class Sudoku {
public int[] numbers { get; set; }
}
}
...,由控制器用索引初始化...
namespace MvcApplication2.Controllers
{
public class SudokuController : Controller
{
//
// GET: /Sudoku/
[HttpGet]
public ActionResult Index()
{
Sudoku sudoku = new Sudoku();
int[] numbers = new int[81];
for (var i = 0; i < 81; i++) {
numbers[i] = i;
}
sudoku.numbers = numbers;
return View(sudoku);
}
}
}
...通过视图...
@model MvcApplication2.Models.Sudoku
@{
ViewBag.Title = "Sudoku";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h1>Sudoku</h1>
<div class="sudoku"></div>
@section scripts {
<script id="script1" src="~/Scripts/render_sudoku.js" type="text/javascript" data-numbers=@Model.numbers></script>
}
... 到我的 JavaScript 文件中,我只想将它用作数组。
但是,当我尝试
console.log($('#script1').data("numbers"));
,
我只得到
System.Int32[]
作为答案,这似乎是一个仅描述格式的字符串。
是否可以使用 JavaScript 文件中的实际数组?
我是 MVC 的新手,不能完全掌握它。
解决方案
问题:@Model.numbers 是 int 对象列表,因此它显示您无法像这样访问的字符串值,因为它转换为对象字符串。
解决方案:上面的答案是正确的,但是如果您想像下面这样以数组形式访问直接 JavaScript 变量,您可以将 int string 数组设置为 java-script 变量,如下所示。
<script>
var sudokuNumbers = [@string.Join(",", Model.numbers)]
</script>
不需要在 JavaScript 中将字符串拆分为数组。
现在你可以访问了sudokuNumbers
,这个变量是 javascript 数组。你可以访问它的值。我希望它可以帮助你。
推荐阅读
- networking - IPFS 在 NAS 上运行,无法从联网机器连接到 API/网关
- arrays - 使用函数标记字符串输入
- r - 为回归模型构建 95% 置信区间
- reactjs - 什么是实用函数以及如何在 React Native 中使用它?
- javascript - 从输入文件 url 将图像放在背景上
- flutter - Flutter 运行卡在 Preparing “Install Android SDK Build-Tools 28.0.3 (revision: 28.0.3)”
- android - 片段未在后台堆栈中注册
- css - 为什么具有绝对位置的内联元素的行为不像块级元素?
- python - 在 django 中仅打印第一个返回 HttpResponse
- python - 从字幕文件中删除不在单词列表中的单词(常用单词)