2017-08-24 74 views
-1

我有一个属性如何通过列表<string> model属性来查看javascript数组变量?

public List<string> Answers { get; set; } 

我如何通过列表的值到一个数组变量视图模型?

目前在我的视图中有这个javascript代码,但它在foreach循环内的answers数组上有错误。

名称答案在当前上下文中不存在。

<script type="text/javascript"> 
    var answers = []; 
    @foreach(string answer in Model.Answers) 
    { 
     var ans = @answer; 
     answers.push(ans); 
    } 
</script> 
+2

因为'@ foreach'是剃刀代码(在发送给浏览器之前在服务器上解析)和'var answers'是一个javascript变量 - 它甚至不存在。使用'var answers = Html.Raw(Json.Encode(Model.Answers))' –

+0

这有效StephenMuecke只需在html助手之前添加'@'@var answers = Html.Raw(Json.Encode(Model.Answers) )“ –

+0

你应该添加这个答案。我很乐意选择它。 –

回答

0

使用Json.net来序列化Json。虔诚地使用它!然后考虑将json传递给客户端的最简洁的方法。通常这是一个单独的API调用。我们将web api改进了我们的服务器渲染应用程序,所以我们甚至不需要担心调用Json.net。我们只返回C#对象并且web api将它们转换。 (不是新技术!)你真的不应该在剃刀模板中这样做。

+0

OP不询问如何将_json发送给客户端_ –

+0

不能自救。 – bbsimonbb

相关问题