0

내 이해를 바탕으로 우리는 또한보기에서 코드를 찾을 수있는 것으로 나타났습니다. 그래서 나는 foreach 루프를 사용하여 View에 채워지는리스트를 가지고있다.컨트롤러의 개입없이 MVC 뷰 목록에서 항목 정렬

@foreach (var item in Model) 
{ 
@Html.Raw(item.Name)<br /> 
@Html.Raw(item.Price)<br /> 
@Html.Raw(item.Description)<br /> 
@Html.Raw(item.Image) 
<hr /> 
} 

또한 가격을 사용하여 정렬하려는 foreach 루프 외부의 드롭 다운 목록이 있습니다.
컨트롤러에 모델을 전달하여이 작업을 완료 할 수 있지만 페이지를 완전히 새로 고칩니다.이 작업은 원하는 일이 아닙니다. Inturn 나는 목록이있는 Model에서 항목을 수정하기 위해 javascript를 사용하여 동적으로 정렬되는 모델 만 원했습니다. 어떤 도움을 주시면 감사하겠습니다.

+1

이것은 AngularJS (http://angularjs.org)의 사례입니다. –

+0

DataTables (http://datatables.net/) –

답변

1

내가 생각하는 것은 할 수없는 일입니다.

당신이하려는 것은 페이지 새로 고침이나 서버에 대한 HTTP 호출없이 Razor 구문을 사용하여 목록을 재정렬하는 페이지를 새로 고치는 것입니다. 이것은 ASP.NET MVC 세계의 뷰가 호출 당 한 번 실행될 cshtml 정의이기 때문에 불가능합니다. 페이지를 새로 고치려면 클라이언트 측에서 실행해야하는 것이 필요합니다 (예 : JavaScript).

좋은 아이디어는 출력에 MVC 컨트롤러를 Json 함수를 사용하여 JsonResult을 반환하면 관련보기없이 (표준 MVC 컨트롤러에 할 수있는 JSON (같은 모델의 내용)입니다. 당신은 또한 WebApi 컨트롤러를 사용할 수 있습니다 JSON의 nativly를 생성 할 수있다.

을 그런 다음이 좋은 경쟁자는 클라이언트의 상호 작용. Angular.jsBackbone.js에 대한 응답으로이 모델을보고 그 순서를 클라이언트 측에서 일부 코드를 가지고있다 필요하지만 lots of others가있는 것입니다.

또는 use jQuery.

+0

의 경우도 마찬가지입니다. 현재 사용하고있는 방법론은 컨트롤러로 다시 전송됩니다. 기존 모델에서 동일한 레코드를 가져 와서 재정렬하고 View에 배치합니다. 그러나 페이지가 새로 고침되기 때문에 뷰 측면에서 유효성을 검사하도록 요청 받았습니다. 답변 해주셔서 감사합니다. 클라이언트 상호 작용 사이트를 살펴보고 제공된 링크로 솔루션을 가져 오도록하겠습니다. @AlexC –