我在Razor页面中有一个要在Java脚本中使用的列表。我正在使用viewdata发送数据以查看VIewbag由于某些原因在razor页面中工作。 我正在使用.net core 2.2
我已经尝试过的东西。
查看
我已经尝试过的事情:
如果您提议ajex解决方案,请稍作解释,因为我对此不太了解,或分享说明链接
剃刀页.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格式的数组
答案 0 :(得分:0)
这是我在创建的项目中执行的操作:
<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;
指令和对相应块块包的引用。