0

たとえば、私はこのかみそりのビューを持っています

@foreach (var item in Model)
{               

    <a href="@Item.Id">Hello world</a>
}

クライアント側には、データをバインドするための小さなテンプレートがあります。

    var target = target.find("tbody");
    var markup = "<a href='${Id}'>Hello world<a>";

    $.template("tmpl", markup);
    var elm = $.tmpl("data", data);

このビューには、ASP.NET Razor 構文が含まれています。しかし、多くの場合、同じビューモデルが AJAX リクエストによって機能し、Knockout や jQuert テンプレート、CanJS などの Javascript ベースのテンプレートによって DOM にバインドされるシナリオがあります。

私はそうしなければならないので、自分自身を繰り返すのはあまり快適ではありません. それで、あなたの戦略は何ですか?SEO に影響するため、クライアント側のみを使用するオプションとは考えていません。

4

1 に答える 1

0

繰り返し可能な(@foreach)セクション全体を部分ビューにして、ajax経由で呼び出されたときにコントローラーがレンダリングされた部分ビューを取得してページにプッシュするようにすることもできます。

返される予想されるコンテンツタイプはhtmlであることがajax呼び出しに伝えることができます。

したがって、コントローラーアクションまたはajaxの別のアクションでは、どのようにそれを分解したいのか:

if(Request.IsAjaxRequest()) return Partial('myForeach',model);

その解決策は、繰り返しをゼロにします。ajax呼び出しは、完全にレンダリングされたhtmlをフェッチしています@foreach

これは、ロボットが適切にレンダリングされたページのみを表示するようにするための最も簡単な方法です。(これは、心配しているロボットが、JavaScript後の調整のようにページがどのように見えるかを見つけようとしないことを前提としています)。

于 2013-02-01T19:00:55.027 に答える