javascript - 如何访问javascript函数asp.net中的列表对象

标签 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赋值

最佳答案

您不能直接在 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/

相关文章:

c# - X 的所有可能组合分成 N 个堆栈

C# 与 Unix 时间戳相互转换

c# - 如何检查 T 是否是泛型方法中的对象列表

javascript - IIFE 中的变量提升(惰性解析)

javascript - JavaScript 中的别名方法链?

php - 鼠标输入悬停 Div 显示/隐藏

c# - List.Add 未完美添加并行和异步

javascript - 仅当站点位于本地主机时、仅当启用 JavaScript 时、仅在 IE8 模式下,IE8 才会在重新加载时崩溃

javascript - 动态创建元素的视频addEventListener

c# - 'System.Collections.Generic' 用户名和密码列表的最佳选择