2017-10-13 15 views
2

良い一日皆、私は、サーバーからデータを取得し、モーダルダイアログボックスに表示CSHTMLファイルでjqueryのAjaxの方法を持っているjQueryのAJAX呼び出しが失敗した5

。方法は次のとおりです。私はLocalDBデータソースを使用していたときにこれが正常に動作します

$("#flowButton").click(function() { 
    debugger; 
    var $buttonClicked = $(this); 
    var id = $buttonClicked.attr('data-id'); 
    var options = { "backdrop": "static", keyboard: true }; 
    $.ajax({ 
     type: "GET", 
     url: '@Url.Action("GetSentEntryFlow", "Inbox")', 
     contentType: "application/json; charset=utf-8", 
     data: $('#inboxSentForm').serialize(), 
     datatype: "json", 
     success: function (data) { 
      debugger; 
      $('#flowModalContent').html(data); 
      $('#flowModal').modal(options); 
      $('#flowModal').modal('show'); 
     }, 
     error: function() { 
      alert("Dynamic content load failed."); 
     } 
    }); 
}); 

が、私は、接続文字列を変更するとエラーメッセージが表示され、リモート・データベースを使用します。私は、プロジェクトの他のすべての部分がそれを使用して正常に動作するので、リモートのdbへの接続がOKであることを知っています。このメソッドだけが失敗します。

マイビューのコードはこれです:

@foreach (var itemGroup in Model.Entries) 
{ 
    int childCount = itemGroup.Count(); 
    <tr> 
     <td class="text-center"> 
      @Html.Hidden(string.Format("sentEntries[{0}].Id", rowNumber - 1), itemGroup.First().Id, new { @id = string.Format("sentEntries[{0}].Id", rowNumber - 1) }) 
      @Html.CheckBox(string.Format("sentEntries[{0}].Selected", rowNumber - 1), itemGroup.First().Selected, new { @id = string.Format("sentEntries[{0}].Selected", rowNumber - 1) }) 
     </td> 
     <td> 
      @(rowNumber++) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => itemGroup.First().EntryType.TypeFA) 
     </td> 
     <td> 
      @itemGroup.First().GetEntrySubject() 
     </td> 
    </tr> 
    foreach (var item in itemGroup.Skip(1)) 
    { 
     <tr> 
      <td class="text-center"> 
       @Html.Hidden(string.Format("sentEntries[{0}].Id", rowNumber - 1), item.Id, new { @id = string.Format("sentEntries[{0}].Id", rowNumber - 1) }) 
       @Html.CheckBox(string.Format("sentEntries[{0}].Selected", rowNumber - 1), item.Selected, new { @id = string.Format("sentEntries[{0}].Selected", rowNumber - 1) }) 
      </td> 
      <td> 
       @(rowNumber++) 
      </td> 
      <td> 
       @Html.DisplayFor(modelItem => item.EntryType.TypeFA) 
      </td> 
      <td> 
       @item.GetEntrySubject() 
      </td> 
     </tr> 
    } 
} 

とコントローラのメソッドはこれです:

public ActionResult GetSentEntryFlow(List<DataTableRow> sentEntries) 
{ 
    DataTableRow selectedRow = sentEntries.FirstOrDefault(i => i.Selected == true); 
    InboxSentEntry selectedSentEntry = InboxSentEntryRepository.GetById(selectedRow.Id); 

    ICollection<InboxReceivedEntry> firstLevelFlow = InboxReceivedEntryRepository.GetFirstLevelFlowByEntryId(selectedSentEntry.EntryId); 

    return PartialView("~/Views/Shared/Modals/_EntryFlowModalPartial.cshtml", firstLevelFlow); 
} 

エッジの開発ツールセクションに表示され、私は取得していますエラーがこれです:

HTTP404: NOT FOUND - The server has not found anything matching the requested URI (Uniform Resource Identifier). (XHR)GET - http://localhost:51527/Inbox/GetSentEntryFlow?__RequestVerificationToken=-jXt8frpCtnoDPMwd9eo1DUYn7T3ud6BVjsCGukmu7KwMnkgV-i26zKt68b5MIUOqrwkb__otyTvEKprDHAktqJl_T0sQuyS5WPSdX0ET8xx7RggVuDaz45Z_xE1a5OR7cQ5DAfTR4ygt3TmSZJ8fw2&dt_inbox_length=50&EntryTypeFilterInput=&EntryTypeFilterSelect=&EntryActionTypeFilterInput=&EntryActionTypeFilterSelect=&EntryPriorityFilterInput=&EntryPriorityFilterSelect=&sentEntries%5B0%5D.Id=0ff4995d-61da-4896-a30b-ce597090a26b&sentEntries%5B0%5D.Selected=true&sentEntries%5B0%5D.Selected=false&sentEntries%5B1%5D.Id=4274317e-59f4-4f06-8527-d7976f061b3d&sentEntries%5B1%5D.Selected=false 

現在のウィンドウ:ローカルホスト/受信トレイ/

送信

問題の原因は何ですか? ありがとうございます。

+0

コントローラをステップ実行すると、どのようなエラーメッセージが表示されますか? – nurdyguy

+0

要求をクリックして応答を見ると、[ネットワーク]タブでスタックトレースが表示される場合もあります。 – nurdyguy

+0

コードが実行されても、コントローラにまったく到達しません。それはjqueryで停止します。 jqueryエラーを投稿に追加します。 –

答えて

0

エラーの詳細を見つけるのを手伝ってくれたnurdyguyのおかげで、私は解決策を見つけました。エラーの原因は、リモートデータベースにはさらに多くのレコードが含まれており、プロジェクトは任意の長さの要求を許可するように構成されていなかったためです。そこで、エラーを検索して、次のようなリンクを見つけて、それを許可するようにweb.confを変更する方法を教えてください: How to configure the web.config to allow requests of any length

+0

あなたの要求が本当に長ければ、 'get'の代わりに' post'要求を送ることを検討するかもしれません。 – nurdyguy

+0

私は後でそれをやります。助けてくれてありがとう。 –

関連する問題