2016-06-07 3 views
-2

간단한 방법이 있지만 확실한 답변을 찾을 수는 없습니다.ASP MVC에서 선택한 항목에 새보기로드

내 응용 프로그램에 "색인"이라는 페이지가 있습니다. 색인에는 몇 가지 그래프 및 기타 다양한 데이터가 포함됩니다. 페이지 상단에는 HTML 드롭 다운 메뉴가 있습니다. 사용자가 드롭 다운 메뉴에서 값을 선택하면 데이터에 영향을줍니다. 원하는 동작은 페이지가 업데이트 된 그래프로 새로 고쳐지는 것입니다.

나는

<select id="Menu" onchange="loadGraphs()"> 

를 사용하여 드롭 다운 메뉴의 값을 가져온 다음 사용하여 스크립트의 값에 액세스 할 수 있어요 :

var value = $('#Menu').val(); 

을하지만 그때 내가 할 수 없습니다입니다 내 컨트롤러를 호출하여 페이지를 새로 고침합니다. 값을 받아들이고 데이터를 처리 한 다음 뷰를 반환하는 메서드가 컨트롤러에 있습니다. 이 값을 호출하여 페이지를 다시로드하려면 어떻게해야합니까?

+0

작동하지 않는 코드는 어디에 있습니까? 그것도 포함시킬 수 있습니까? –

+0

인덱스 뷰에서 컨트롤러로 Ajax 호출하기. 그런 다음 컨트롤러에서 호출 된 액션은 부분 뷰를 사용하여 인덱스 뷰의 내용을 업데이트 할 수 있습니다. –

답변

1

페이지를 새로 고침 할 필요가없는 경우 데이터를 새로 고치려면 예를 들어 작은 그림을 사용하여 새로 고치지 않고 페이지를 업데이트 할 수 있습니다.

컨트롤러 작성 방법에 따라 GET 또는 POST 중 HTTP 요청을 컨트롤러에 보내고 JsonResult를 반환 한 다음 결과를 사용하여 새 데이터를 채우십시오.

컨트롤러는 뷰뿐만 아니라 데이터를 반환 할 수 있습니다. 뷰일 때 ActionResult이지만 JsonResult는 그냥 json 물건입니다.

더 나은 접근 방법은 WebApi2 프로젝트를 추가하는 것이고 모든 데이터 관련 컨트롤러를 배치하는 것입니다. 그것은 당신의 프로젝트가 얼마나 큰지에 달려 있습니다. 당신이 가진 모든 것이 당신이 부르는 한 두 가지 일이라면 과잉 일 수 있습니다. 그러나 이점은 예를 들어 모바일과 같이 웹뿐만 아니라 여러 클라이언트에서 동일한 API를 호출 할 수 있다는 것입니다.

+0

클릭하지 않았다면 메서드에서 일부 데이터를 반환하고 그래프에 연결할 수있었습니다. 아직 페이지를 새로 고침해야 디스플레이가 업데이트되지 않습니까? – Stinkidog

+1

그래서 저는 양방향 데이터 바인딩이있는 Angular를 제안했습니다. 따라서 기본적으로 데이터가 변경되면 디스플레이가 변경되므로 페이지를 새로 고치는 것에 대해 생각할 필요가 없습니다. 그런 프레임 워크에 대해 걱정하지 않으려는 경우 데이터가 컨트롤러에서 다시 나오면 데이터 표시를 다시 만들 수 있으며 페이지를 새로 고칠 필요가 없습니다. –

+0

네! 감사 – Stinkidog

관련 문제