这是我在 C# View 中的列表
@model SmartFeedBackModel.Models.Question;
@{
ViewData["Title"] = "Index";
}
@{
List<SmartFeedBackModel.Models.Question> list = ViewBag.Questions;
}
这是我的java脚本函数
var i = 0;
var qustid = 0 ;
function aaa() {
var a = @list[0].Answer1;
alert(a);
qustid = 22;
i = i + 1;
}
无法给变量a赋值
最佳答案
您不能直接在 JavaScript 中使用 C# 对象。您正在尝试做的事情是这样的。
On Server
--> Get the object & assign it to list.
--> create a script where line is var a = value of @list[0].Answer1
On Client
--> Try to run a = value of @list[0].Answer1
这行不通。相反,您需要将 list
解析为 JSON 或 JS 数组。所以,事情会是这样的。
var jsList = JSON.parse('@Html.Raw(Json.Serialize(list))');
var i = 0;
var qustid = 0;
function aaa() {
var a = jsList[i].Answer1;
alert(a);
qustid = 22;
i = i + 1;
}
我假设您需要客户端的所有答案,并且在调用 aaa()
后,您需要显示下一个答案。
这用于将 C# 数组转换为 JS 数组。
How do I convert a C# List<string[]> to a Javascript array?
编辑:
.NET Core 不支持 Json.Encode
。而是使用 Json.Serialize()
更新了上面的代码。
关于javascript - 如何访问javascript函数asp.net中的列表对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48314649/