【问题标题】:Working with view model and Razor via javascript通过 javascript 使用视图模型和 Razor
【发布时间】:2013-08-03 14:31:57
【问题描述】:

我有一个包含“歌曲”列表的视图模型。 现在我不想让视图遍历所有列表,所以在 java 脚本中我做了:

$(window).scroll(function () {
    if ($(window).scrollTop() + $(window).height() + 5 > $(document).height()) {    
        @foreach (var item in Model.Songs.Skip(Number).Take(20))
        {
             //do something
        }
        Number = Number + 20;
    }
});

问题是 Razor 变量“数字”没有改变,所以我总是加载相同的条目。我不想每次滚动条到达底部时都进行 ajax 调用,我已经有了页面模型,只是不想立即使用所有这些。

【问题讨论】:

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


    【解决方案1】:

    我认为实现这一点的最佳方法是将模型集合解析为 javascript 对象(数组)

    首先您需要创建 html 辅助方法(无论如何在其他情况下都会有用),例如

      using Newtonsoft.Json;
       .....
         public static HtmlString ToJson(this HtmlHelper helper, object obj)
         {
             return MvcHtmlString.Create(JsonConvert.SerializeObject(obj));
         }
    

    然后将你的模型属性转换为 js 对象。

    <script>
        var songs = @Html.ToJson(Model.Songs.Skip(Number).Take(20))
    </script>
    

    仅此而已。对我有用。

    【讨论】:

      猜你喜欢
      • 2020-06-03
      • 1970-01-01
      • 2023-04-04
      • 2011-10-09
      • 2014-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多