2016-11-21 21 views
1

MVC 5プロジェクトで書いたAjaxコードに問題があります。テーブルをajaxを使用していますが、私はこのエラーに遭遇しています。 "リソースをロードできませんでした:サーバーが500(内部サーバーエラー)のステータスで応答しました"。MVC - リソースのロードに失敗しました:サーバーが500のステータスで応答しました(内部サーバーエラー)

これではJavaScript Ajaxコードを含んでいる私の部分図のコードです:

@model IEnumerable<ToDo.Models.Venue> 

@*Search Box*@ 
@using (Html.BeginForm()) 
{ 
    <p> 
     <input type="text" class="form-control" id="txtSearch"> 
     <span class="btn btn-sm btn-warning" id="btnCustomerInc" onclick="VenueSearch();">Search</span> 
    </p> 
} 

<table class="table"> 
    <tr> 
     <th> 
      @Html.DisplayNameFor(model => model.VenueName) 
     </th> 
     <th> 
      @Html.DisplayNameFor(model => model.VenueType) 
     </th> 
     <th> 
      @Html.DisplayNameFor(model => model.VenueTown) 
     </th> 
     <th> 
      @*blank*@ 
     </th> 
    </tr> 

    @foreach (var item in Model) 
    { 
     <tr> 
      <td> 
       @Html.DisplayFor(modelItem => item.VenueName) 
      </td> 
      <td> 
       @Html.DisplayFor(modelItem => item.VenueType) 
      </td> 
      <td> 
       @Html.DisplayFor(modelItem => item.VenueTown) 
      </td> 
      <td> 
       @Html.ActionLink("Details", "Details", new { id = item.VenueID }, new { @class = "btn btn-primary" }) 
      </td> 
     </tr> 
    } 

</table> 

<script> 
    function VenueSearch() { 
     console.log("Venue Search function hit"); 

     var search = document.getElementById("txtSearch").value; 
     console.log(search); 

     $.ajax({ 
      type: "GET", 
      url: '@Url.Action("VenuesTablePartialView", "Venues")', 
      data: { searchString: search }, 
      success: function (data) { 

       $('#VenueTable').html(data); 
       $('#VenueTable').fadeIn("fast") 

      } 
     }); 
    } 
</script> 

これは、部分的なビューのための私のコントローラのアクションです:

[ChildActionOnly] 
     public ActionResult VenuesTablePartialView(string searchString) 
     {  
      var venues = from v in db.Venues 
         select v; 

      //Search 
      if (!String.IsNullOrEmpty(searchString)) 
      { 
       venues = venues.Where(v => v.VenueName.ToUpper().Contains(searchString.ToUpper())); 
      } 


      return PartialView("_VenuesTable", venues.ToList()); 
     } 
    } 

This image shows the error and the console messages

+1

system.webServerセクションにこのコードを追加します。 Fiddlerのようなツールをつかんで、より詳細なエラーメッセージとそれからトラブルシューティングの面で何が返ってくるかを見てください。 – jleach

+0

はい私はコントローラの動作をもう少し調べましたが、[ChildActionOnly]が私の問題の原因であることに気がつきました。私はこの行を削除し、意図したとおりに動作しています。 –

答えて

0

私がすることができました[ChildActionOnly]行を削除してこの問題を解決してください。これは問題を引き起こしていました。これは、このコントローラアクションが子r平等。

public ActionResult VenuesTablePartialView(string searchString) 
{  
    var venues = from v in db.Venues select v; 

    //Search 
    if (!String.IsNullOrEmpty(searchString)) 
    { 
     venues = venues.Where(v => v.VenueName.ToUpper().Contains(searchString.ToUpper())); 
    } 

    return PartialView("_VenuesTable", venues.ToList()); 
} 
1

コントローラのアクション(またはパイプライン内の一部のフィルタまたはメッセージハンドラ)が例外をスローしたことを意味するweb.configファイル

<validation validateIntegratedModeConfiguration="false" /> 
関連する問題