2016-11-21 263 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

這將意味着控制器動作(或在管道中的一些過濾器或消息處理)拋出異常。抓住一個像Fiddler這樣的工具,並根據更詳細的錯誤信息查看它返回的內容,並從那裏排除故障。 – jleach

+0

是的,我再看看控制器的動作,我意識到[ChildActionOnly]是我的問題的根源,我刪除了這一行,現在按預期工作。 –

回答

0

我能通過刪除[ChildActionOnly]行來解決此問題,這引起了一些問題,因爲這意味着此控制器操作只能由子r equests。

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

將此代碼添加到system.webServerweb.config文件

<validation validateIntegratedModeConfiguration="false" /> 
相關問題