【发布时间】:2019-09-10 12:43:01
【问题描述】:
我在 Razor 页面中有一个列表,我想在 java 脚本中使用它。我正在使用 viewdata 发送数据以查看 VIewbag 出于某种原因在 razor 页面中工作。 我正在使用 .net core 2.2
我已经尝试过的事情。
查看
我已经尝试过的事情:
- var a=@Model.listname
- var stringArray = @Html.Raw (Json.Serialize(ViewData["Quest"]));` viewdata[Quest] 包含列表
- 字符串 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 格式的数组
【问题讨论】:
-
您在控制器中使用
ViewData["jon"]存储数据,但您尝试在视图中使用ViewData[Jon"]访问它。钥匙应该有相同的外壳才能工作。 -
这不是问题,我更正了同样的结果..
标签: c# .net asp.net-core razor-pages asp.net-core-2.2