2017-07-26 4 views
0

我々は無限スクロールページを持っているし、我々はすなわちMVC:htmlの次のページURLをクライアントに返すには?

<li> ... </li> 
<li> ... </li> 
<li> ... </li> 
<li> ... </li> 

我々は一番下に、ユーザーがスクロールした場合、それは要求を発行できるように、JavaScriptのクライアントに戻って、次のページのURLを送信する必要があるMVC conrollerサーバ側からHTMLを取得しています次のリストのセットを取得するためにサーバーに送信します。

我々は、サーバー上で、次のページのURLを持っています。 JSクライアントは、次のリストを取得するためにこのURLをヒットする必要があります。

私はどのように私は、サーバーからクライアントにこの次のページのURLを送ることができます任意の明確な考えを持っていません。 1つの方法は、最後の<li>...</li>タグ内の次のページURLをバインドし、クライアントの最後の<li>...</li>タグから読み取ることです。

はこれを解決するために任意のより良い方法はありますか?

+0

生データを返送していますか、すでにHTML形式ですか? – nurdyguy

+0

MVCコントローラからhtmlを送り返す – maverick

+0

htmlを送り返しているので、最後に隠されたliをURLに付けてデータ属性を付けます。 '

'そして、jqueryを使ってURLを探してください。 – nurdyguy

答えて

1

私はあなたの要求の応答が現在のように見えますが、可能であれば、私が見えるようにサーバーからの応答のペイロードを再構築したいどのようにあまりにもわからない:あなたが持っていない、そのよう

{ 
    nextPage: 'someUrl', 
    data: '<li>...</li>' 
} 

マークアップにURLを隠し、あなたのビューとコントローラロジックの滞在があなたの最後のliタグの後:)

+0

正しい。しかし、JavaScriptを無効にしたブラウザでも私たちのページをロードしたい。 HTMLの代わりにJSONレスポンスを返すようにすれば、JSが無効になっているブラウザでは動作しなくなります。私たちはこれを解決することができる他のエレガントな方法? – maverick

+0

どのように無制限のスクロールJS無効なブラウザで動作しますか?最初のページリクエストでnextPage URLを送信するつもりはなく、結果的に次の要素を問い合わせるリクエストだけでした。私はあなたがHTMLページをリクエストする方法とは別のクエリを作ることができると思います。 – Kano

0

を分離するために、あなたはグローバル変数に次のページのURLのスクリプトタグとストア値を使用することができます。そして、必要な時にいつでもその価値を簡単に得ることができます。

<li>....</li> 
<li>....</li> 
<li>....</li> 
<li>....</li> 
<script>nextPageUrl="@Model.nextPageUrl";</script> 

この方法では、最後のliタグにURLをバインドする必要はありません。

+0

これは、グローバルなjavascript変数を作成します。 divタグにnextPageUrlを設定することで、これを実現することもできます。私はどちらが良いかわからない。 – maverick

+1

しかし、JSの変数にアクセスすることは、divタグからアクセスする方がはるかに高速です。 – yajiv

0

あなたがHTMLを返すされているので、ちょうど李上のデータタグでURLを返します。

<li data-next-page="www.google.com/foo/bar">stuff</li> 

次に、次のjQueryを使用して次に取得します。

var nextUrl = $('#ulContainer').find('li').last().data('next-page'); 
関連する問題