【问题标题】:Iterating through IEnumerable Model in JavaScript在 JavaScript 中遍历 IEnumerable 模型
【发布时间】:2012-04-16 07:56:39
【问题描述】:

我有一个 IEnumerable 在我的视图中使用的汽车模型(在这里它不会让我正确使用尖括号)模型: 在我的 JavaScript 中,我必须创建一个与模型中的对象相对应的对象数组。我无法在 JavaScript 中迭代我的模型 如果我使用剃须刀,javascript 代码不起作用

<script type="text/javascript">

var carsArray = new Array();     

@foreach (var item in Model)
{
    //add the and item to carsArray object
}

//OR
for(i=0;i<@Model.Count();i++)
{
    alert(@Model.ElementAt(i).Title);

//错误:名称'i'在当前上下文中不存在

 //add to array

}

</script>

谢谢!

【问题讨论】:

    标签: javascript asp.net-mvc asp.net-mvc-3 razor ienumerable


    【解决方案1】:

    您是否尝试将内容包装在&lt;text&gt; 标签中?

    var carsArray = new Array();     
    
    @foreach (var item in Model)
    {
        <text>carsArray.push("@item.Property")</text>
    }
    

    【讨论】:

      【解决方案2】:

      您正在混合服务器端和客户端代码。

      如果你想在服务器上吐出客户端代码,你可以。

      但最好的是将模型数据序列化为 JSON 并放在客户端上。


      粗略的例子:

      更新

      @{
         var js = new JavaScriptSerializer();
      }
      
      myJavascriptObject.Models = @js.Serialize(myModels);
      

      【讨论】:

      • 谢谢。我可以参考任何简单的示例或文章吗?谢谢,
      【解决方案3】:

      另一种方法是将服务器模型转换为 javascript,然后对其进行迭代。

      你可以这样转换:

      var model = @Html.Raw(Json.Encode(Model));
      

      这种方法对我有用。解决方案取自另一个 stackoverflow 答案:

      Accessing MVC's model property from Javascript

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多