現在、私のコントローラメソッドから渡されるリストの特定のエントリを表示しようとしていますが、このようなページ区切りバーからユーザーが選択するページに応じて選択します。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変数を使用することができません。
var items = @Model.Skip(page * 10).Take(10);
に
<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>
、私は
名「ページ」を言うエラーが出る私が試した
ことの一つはJavascript variable in razor ActionLinkからだった現在のコンテキスト内に存在しませんしかし、ここでの答えはreplace
で、私には "Uncaught Syntax"エラーが出ます。可能であれば、javascript変数を使用してリストをフィルタリングする方法はありますか?
クライアント上で実行されるコードとサーバー上で実行されるコードは分かりません。 'showResults'は、新しいページ番号を渡してあなたのビューへのリダイレクトやajax呼び出しを行わなければなりません。 – GSerg
あなたがやろうとしていることは不可能です.JavaScriptはクライアントサイドであり、ページが提供される前にひらめき、つまり受け取ったエラーのために、JavaScriptを混ぜ合わせることはできません。 – sleeyuen