目前,我想要只显示从我的控制器方法传入的一个列表,这取决于页面用户从分页栏,它看起来像这样如何JavaScript变量传递到@Model功能
选择的某些条目<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);
,我得到的是说
名称“页面”的错误不会在目前情况下
有一两件事我想是从Javascript variable in razor ActionLink存在,但涉及replace
的答案会给我一个“未捕获的语法”错误。如果可能的话,我想用任何方法来过滤使用javascript变量的列表。
您似乎无法理解在客户端上运行的代码以及服务器上运行的代码。 'showResults'必须向您的视图发送ajax调用或重定向,以传递新的页码。 – GSerg
你试图做的事是不可能的 - 你不能将JavaScript混合到剃须刀的功能,因为JavaScript是客户端和剃须刀在页面送达之前编译,因此你收到的错误。 – sleeyuen