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

如何访问javascript函数asp.net中的列表对象,javascript,c#,Javascript,C#,这是我在c视图中的列表 @model SmartFeedBackModel.Models.Question; @{ ViewData["Title"] = "Index"; } @{ List<SmartFeedBackModel.Models.Question> list = ViewBag.Questions; } 无法为变量a赋值请尝试将@list[0]。Answer1更改为'@list[0]。Answer1' 这将允许您将字符串

这是我在c视图中的列表

@model SmartFeedBackModel.Models.Question;
@{
ViewData["Title"] = "Index";
}

@{
List<SmartFeedBackModel.Models.Question> list = ViewBag.Questions;

 }
无法为变量a赋值

请尝试将@list[0]。Answer1更改为'@list[0]。Answer1'


这将允许您将字符串值分配给javascript变量。

您不能在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
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;
    }
这不管用。相反,您需要将列表解析为JSON或JS数组。所以,会是这样的

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
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数组的

编辑:
.NET Core中不支持Json.Encode。改为使用Json。序列化更新了上述代码。

列表和js函数都在同一个视图中。因此,我需要在js函数中获取列表元素,然后通过单击按钮手动逐个显示。如果您有更好的解决方案,请告诉我。如果您能够在列表[0]中显示此元素的警报,请提前感谢1.答案1.是的better@NightOwl888事实上,如果脚本在同一视图中,列表值将生成并插入html。sandun如果你打开浏览器控制台,你会看到有一个错误,看起来像这个ReferenceError:未定义。你可以在JS中使用c对象,如果他添加引号,或者它可以正常工作,但无论如何,这不是实现这一点的最佳方法。@SeM我知道,我想他想要的是整个对象。不仅仅是一个值。我推荐这个答案,最好将数据加载到客户端,然后在JavaScript端执行任何需要执行的操作。坦率地说,尽量减少razor代码以避免页面呈现缓慢,因为页面是服务器端的——这是我使用razor面临的最大问题。最好的解决方案是,如果他创建一个适当的视图模型,然后使用它的值。Json.Encode中有一个错误。我应该如何避免itvar I=0;函数aaa{a='@list[i].QuestionID';alerta;i=i+1;}//这里我需要增加i值。。但是出现错误,说当前上下文中不存在名称“i”。如果您知道