在cshtml中获取变量中的$ data.length

时间:2015-02-13 16:06:44

标签: knockout.js

我必须在cshtml中的变量中获得arraylist长度。

<!-- ko foreach: Sales()-->
    <div data-bind="$data.length">
<!-- /ko -->

我需要将$data.length保存在这样的变量中:

@{int xyz = $data.length} 

但是,这不起作用。我需要它,以便可以在我的Razor视图中使用xyz

1 个答案:

答案 0 :(得分:0)

你不能这样做,而不是你认为这样做的方式。根据评论,您应该意识到有两个独立的事情:

  1. 首先,您的服务器将执行您的Razor视图并创建一个html页面,其中可能包含一些混合的JavaScript。这将发送到浏览器。
  2. 其次,客户端的浏览器将执行JavaScript。
  3. 因此,您无法在Razor视图中使用$data.length的值,因为第1阶段已在JavaScript执行时完成。您的选择基本上是:

    1. 使用JavaScript中的$data.length编写您想要做的任何事情;
    2. 让您的JavaScript代码将$data.length发送到呈现部分视图的控制器操作(Razor视图将具有可用于渲染的值)。
    3. 查看Programmers.SE's explanation of the difference between Client and Server side code