如何访问javascript funtion asp.net中的列表对象

时间:2018-01-18 05:51:32

标签: javascript c#

这是我在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

2 个答案:

答案 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变量。