目前,我想要只顯示從我的控制器方法傳入的一個列表,這取決於頁面用戶從分頁欄,它看起來像這樣如何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