【问题标题】:How to get to specific items in a list in a model in razor如何在剃须刀模型中访问列表中的特定项目
【发布时间】:2012-10-25 14:09:30
【问题描述】:

在 Razor 的视图中,我传递了一个模型,其中包含一个具有 Name 和 UseDescription 属性的对象列表('usageList')。

在 JQuery 中,我制作了一个滑块,我希望在更改滑块值时显示特定的 UseDescription。

问题是在模型内的列表中获取特定对象。 我有这段代码(JQuery):

<script type="text/javascript">
    $(document).ready(function() {
        $("#slider").slider({
            min:1,
            max:3,
            value:1,
            range:"min",
            change: function(event,ui){
                var number = ui.value;
                alert("@Model.UsageList[ui.value].UseDescription");

            }
        });
    });
</script>

无法在这一行获取 ui.value:

alert("@Model.UsageList[ui.value].UseDescription");

如果我传入一个数字(例如 1)而不是 ui.value,则一切正常。但我需要获取具体的列表对象。

非常感谢任何帮助。

【问题讨论】:

  • 保存的列表是什么?网格?
  • 它只位于从控制器传递过来的模型中
  • 该模型仅在服务器端可用...而不是在客户端。
  • 将使用说明添加到右侧幻灯片中,之后您可以使用 .attr 选择器轻松访问它

标签: javascript jquery razor slider


【解决方案1】:

您需要使用 javascript 将列表下载到客户端。然后,您可以按索引获取项目。像这样的:

<script type="text/javascript">
        $(document).ready(function() {
            var usageList = []
            @foreach (var item in Model.UsageList)
            {
                <text>usageList.push('@item.UseDescription');</text>
            }

            }
            $("#slider").slider({
                min:1,
                max:3,
                value:1,
                range:"min",
                change: function(event,ui){
                    var number = ui.value;
                    alert(usageList[ui.value - 1]);

                }
            });
        });
    </script>

【讨论】:

  • 或者使用 Json 序列化器...如果 UseDescription 的值包含单引号,这将失败。
  • usageList 在 foreach 循环中无法识别。
  • 你是对的。我刚刚更新了它。请注意此处提到的单引号。
  • 做到了!我会小心使用单引号。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2019-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多