2014-12-28 8 views
0

데이터를 비동기 적으로로드하기 위해 ajax 헬퍼를 사용하고 있는데, MVC5, EF6을 사용하고 컨트롤러에서 PartialView를 반환하지만 부분 뷰는 비동기 적으로 DIV를 업데이트하는 대신 전체 페이지에서로드됩니다. 나는 또한 웹 설정에 키를 추가 한ASP.NET MVC5 Ajax Partial View 전체 페이지로드하기

@model IEnumerable<GS.MVC_Ajax_Venkat3.Models.Student> 
<table class="table" style="border:1px solid black; background-color:greenyellow"> 
    <tr> 
     <th> 
      @Html.DisplayNameFor(model => model.Name) 
     </th> 
     <th> 
      @Html.DisplayNameFor(model => model.TotalMarks) 
     </th> 
    </tr> 

    @foreach (var item in Model) 
    { 
     <tr> 
      <td> 
       @Html.DisplayFor(modelItem => item.Name) 
      </td> 
      <td> 
       @Html.DisplayFor(modelItem => item.TotalMarks) 
      </td> 
     </tr> 
    } 
</table> 

:

SampleDBContext db = new SampleDBContext(); 
public ActionResult Index() 
{ 
    return View(); 
} 

// Return all students 
public PartialViewResult All() 
{ 
    List<Student> model = db.Students.ToList(); 
    return PartialView("_Student", model); 
} 

내 index.cshtml 코드 _Student.cshtml 부분보기의

<!DOCTYPE html> 
<html> 
<head> 
    <meta name="viewport" content="width=device-width" /> 
    <title>Index</title> 
</head> 
<body> 
    <div style="font-family:Arial"> 

     <script src="~/Scripts/jquery-1.10.2.min.js"></script> 
     <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script> 
     <h2>Students</h2> 

     @Ajax.ActionLink("All", "All", 
    new AjaxOptions 
    { 
     HttpMethod = "GET", // HttpMethod to use, GET or POST 
     UpdateTargetId = "divStudents", // ID of the HTML element to update 
     InsertionMode = InsertionMode.Replace // Replace the existing contents 
    }) 

     <br /><br /> 
     <div id="divStudents"> 
     </div> 
    </div> 

</body> 
</html> 

마크 업입니다 : 다음은 내 코드입니다 따르기 :

+0

스크립트가 페이지에로드되고 있습니까? – Shoe

+0

Thanks @Shoe 스크립트 파일과 관련하여 문제가 해결되었습니다. – GURMAILse

답변

0

문제는 레이아웃 페이지와보기 페이지에서 jquery.unobtrusive-ajax.js를 두 번 참조했기 때문입니다. 보기에서 스크립트 참조를 제거한 다음 정상적으로 작동했습니다.