1

このjqueryで部分ビューをロードすると:

$.get('@Url.Action( "List" , "Menu" )', function(data) {
    $('#treeviewdiv div').replaceWith(data);
});​

すべてのサイトが自分のサイト内で再び読み込まれます。別の head タグ、別の body タグを意味します。

私はこれを使用していますが、それも機能していません:

$.get('@Url.Action( "List" , "Menu" ) #container', function(data) {
    $('#treeviewdiv div').replaceWith(data);
});​

...そしてコンテナは私の部分ビュー内のdivタグです。

どうすれば修正できますか?

4

1 に答える 1

1

これは通常、アクションが部分ビューではなく全体ビューを返すことを示しています。良いニュースは、これはいくつかの異なるオプションで簡単に解決できることです.

1 アクションが部分ビューを返すようにします。

public PartialViewResult Menu(){
  return PartialView();
}

2 これが ajax または標準メソッドを介して呼び出すことができるアクションである場合、ajax リクエストに基づいて切り替えることが役立つ場合があります。

public ActionResult Menu(){
  return Request.IsAjaxRequest() ? PartialView() : View();
}

3 もう 1 つのオプションは、ビューに処理させることです (特定のビューまたはViewStart.cshtmlファイルでこれを行うことができます)。

@{
  Layout = !IsAjax ? "~/Views/Shared/_Layout.cshtml" : null;
}
于 2012-07-03T01:05:00.943 に答える