2017-01-31 5 views
0

このarticleに続いて、Partial ViewAjaxでロードしようとしています。しかし、それはロードされていないpartial viewAsp.net MVCコア - Ajaxを使用して部分ビューを読み込むことができません

NOTES:

  1. 私は、Visual StudioのMVCコアWebアプリケーションのプロジェクトテンプレートが付属していますjqueryののデフォルトのインストール/設定で最新の更新プログラムでVS2015を使用しています。
  2. Google Chromeのデベロッパーツールにエラーは表示されません。また、ブラウザのビューソースにはまだ<div id="UpdateTabData"></div>タグの空白が表示されます
  3. Ajaxコールのclickイベント内にalert('Test')を配置し、Ajaxが実際にTestActionメソッドを呼び出すbreakpointコントローラアクションメソッドを使用してテストしました。実際にはreturn PartialView("PartialView", myViemodel);を返します。アクションメソッド内にエラーはありません。

    [HttpGet] 
    public IActionResult TestAction(string calledFrom) 
    { 
        ... some code here with a view model myViemodel 
    
        return PartialView("myPartialViewName", myViemodel); 
    } 
    

    ビュー:

    @model myProj.Models.myTestViewModel 
    ...some html here... 
    <div id="UpdateTabData"></div> 
    ... more html here 
    ... 
    

    Ajaxコード末尾に

  4. しかしアヤックスはそれが

コントローラ誤差関数だから、私のカスタムエラーメッセージを返します。終了時に

$(document).ready(function() { 

    $('#myTabstripID li').click(function() { 
     var li_id = $(this).attr("id"); 

     $.ajax({ 
      url: '@Url.Action("TestAction", "myControllerName")', 
      data: { calledFrom: li_id}, 
      contentType: 'application/json', 
      dataType: 'html' 
      type: 'GET', 
      cache: false, 
      success: function (data) { 
       $('#UpdateTabData').html(data); 
      }, 
      error: function (data) { 
       alert('Error occurred'); 
      } 
     }); 
    }); 

}); 
+2

ブラウザの開発ツール - >ネットワークタブを開き、ajax呼び出しの応答を確認してください。それは200でOKですか?そうでない場合は、レスポンスを確認して、あなたが得ているものを見てください。あなたのサーバーコードがクラッシュする可能性があります – Shyju

+0

@Shyjuはい、 'dev tools-> network-> Headers'タブに' status code:200 OK'と表示されます – nam

+0

あなたの開発ツールには何のプレビューペインが表示されますか? – Detilium

答えて

0
  1. F12キーを押して、部分ビューを返す必要があり、あなたのアクションにURLをご確認ください。
  2. URLをコピーしてブラウザのアドレスバーに貼り付け、Enterキーを押します。
  3. エラー(エラーがある場合)または部分的なビューが表示されます。
  4. 手順3でエラーがなければ、alert($( '#UpdateTabData')。length);と入力してください。コンソールに表示されます(実際にそのようなIDを持つ要素がある場合は1にする必要があります)。

これは非常に単純な作業です(部分的な結果を返すアクション結果を得ることを意味します)。だから、あなたはちょうど間違ったidやこれのようなマイナーなものをどこかに持つ可能性があります。

0

コードのこの部分を削除することができます。コントローラであなたのActionResultに基づいて

contentType: 'application/json', 

、あなたは部分図を戻ってきています。だからあなたのajaxコールはjsonではなくviewを期待しています。これで問題は解決します。

関連する問題