这是我在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
答案 0 :(得分:1)
您无法直接在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()
更新上述代码。
答案 1 :(得分:0)
尝试将@list[0].Answer1
更改为'@list[0].Answer1'
这将允许您将字符串剃刀值分配给javascript变量。