c# - 如何将列表从控制器/视图发送到 JS 脚本
问题描述
我在 Razor 页面中有一个列表,我想在 java 脚本中使用它。我正在使用 viewdata 发送数据以查看 VIewbag 出于某种原因在 razor 页面中工作。我正在使用 .net 核心 2.2
我已经尝试过的事情。
看法
我已经尝试过的事情:
- var a=@Model.listname
- var stringArray = @Html.Raw (Json.Serialize(ViewData["Quest"]));` viewdata[Quest] 包含列表
- string jsonn = JsonConvert.SerializeObject(quelist);` 然后发送 jsoon 来查看。
- 使用自定义类对象并使用 Newtonsoft.Json 创建创建 json 对象并发送到视图
如果您提出 ajax 解决方案,请稍微解释一下,因为我对此不太了解或分享链接以进行解释
Razor 页面 .cs 文件 注释掉的东西
public async Task OnGetAsync()
{
ViewData["opt1"] = o1list;
ViewData["quest"] = quelist;
// string jsonn = JsonConvert.SerializeObject(quelist);
// ViewData["Jon"] = jsonn;
QuestionBank = await _context.QuestionBank
.Include(q => q.QuestionLevel)
.Include(q => q.QuestionStyle)
.Include(q => q.Teacher)
.Include(q => q.Topic).ToListAsync();
Answer = await _context.Answer.ToListAsync();
QSID = await _context.QSID.ToListAsync();
看法
@{var name = (List<String>)ViewData["Quest"]; }
<script>
/*function test() {
var array = @Html.Raw(Json.Serialize(ViewData["Jon"]));
for(var i = 0; i < array.length; i++) {
alert(array[i]);
console.log(array[i]);
}
}
test();
*/</script>
</head>
<body>
@{
Model.run();
var name = (List<String>)ViewData["Quest"];
var nam = (List<String>)ViewData["opt1"];
int j = 0;
for (int i = 0; i <= 4; i++)
{
var a = name[i];
<p > @a </p>
<form action="">
<input type="radio" name="s" value="">@nam[j]<br>
@{j = j + 1; }
<input type="radio" name="s" value="">@nam[j]<br>
@{j = j + 1; }
<input type="radio" name="s" value="">@nam[j]<br>
@{j = j + 1; }
<input type="radio" name="s" value="">@nam[j]
@{j = j + 1; }
</form>
}
}
我希望得到一个包含我的列表或 json 格式的数组
解决方案
这就是我在我创建的项目中的做法:
<script>
var saleTypesById = @Html.Raw(JsonConvert.SerializeObject(Model.TypesById));
</script>
其中 Model.TypesById 是一个Dictionary<long,SaleType>
.
要从 javascript 中使用,我调用:
var selectedSaleType = saleTypesById[selectedId];
然后我可以像这样调用它的属性selectedSaleType.Comission
此代码需要@using Newtonsoft.Json;
指令和对相应 nugget 包的引用。
推荐阅读
- r - R中具有多个变量的条形图
- python - 在 Django 中迁移应用程序时,我一直没有检测到任何更改
- php - XAMPP 7.2.13 php -ext-int 扩展错误
- python - 如何从用户输入中调用列表项
- android - 如何从 JSON 结果中检索流派
- linux - 无法构建 GNU automake - help2man 无法从 automake-1.16 获取 `--help' 信息
- c++ - 我收到错误“变量的类型不完整”,但我找不到问题所在
- ios - 在 Swift 的 spritekit 游戏中定义我的宇宙飞船运动
- c# - 如何在 C# 中创建一个填充两个 DataGridView 的函数
- gradle - 哪个文件 gradle.properties 优先级更高?