我目前只是尝试显示从我的控制器方法传入的列表的某些条目,具体取决于用户从分页栏中选择的页面,如下所示
<nav aria-label="Page navigation">
<ul class="pagination">
<li class="page-item">
<a class="page-link" href="#">Previous</a>
</li>
@for (int i = 1; i <= numberOfPages; i++)
{
<li class="page-item">
<a class="page-link" href="#" onclick="showResults(@i)">@i</a>
</li>
}
<li class="page-item">
<a class="page-link" href="#">Next</a>
</li>
</ul>
<h4>
Retrieved @Model.Count() results - currently showing 10 per page
</h4>
</nav>
对于某些上下文,numberOfPages
是一个定义为Model.Count()/10 + 1
的剃刀变量。现在我只是想从传入的列表中获取正确的元素。但是在我的showResults方法中,我无法在涉及@Model
的函数中使用javascript变量。
<script>
function showResults(page) {
//no need to reload the current page
if (page == @currentPage){
return;
}
page = page - 1; //e.g. if user wants to go to page 1, then results gathered would be from 0 to 9
var items = @Model.Skip(page * 10).Take(10);
}
</script>
在行var items = @Model.Skip(page * 10).Take(10);
上,我收到错误消息
名称&#39;页面&#39;在当前上下文中不存在
我试过的一件事是Javascript variable in razor ActionLink,但这里涉及replace
的答案会给我一个&#34; Uncaught Syntax&#34;错误。我想以任何方式使用javascript变量过滤列表,如果可能的话。
答案 0 :(得分:0)
跳过对剃刀变量进行操作。您不能使用客户端参数进行服务器端计算。
如果您的模型包含所有数据,为什么需要使用剃刀过滤掉数据?将数据分配给JavaScript变量,然后跳过show result方法。
如果要动态加载数据,而不是对该页面执行Ajax调用,并仅使用该数据填充模型。然后再做第二段:)