2012-01-09 5 views
2

JavaScriptResult를 사용해야하는지 궁금해하셨습니까? 나는 이것에 관한 몇 개의 기사를 읽고 사람들은 모순 된 의견을 가지고있다.내 코드에서 JavaScriptResult 사용

나는 이익을 볼 수 있습니다

  1. 코드가 컨트롤러에 렌더링을하기 때문에 내 데이터 소스와 더 어려운 계산과 논리와 상호 작용할 수 있습니다.
  2. 그러나 렌더링 된 jasonresult를 사용하여 페이지를 기반으로 렌더링 된 JS가 더 나은 선택 인 것으로 보입니다. 프로그래밍 패턴 확실

하지 :

어떻게 자바 스크립트 컨트롤러 렌더링 모델 뷰 컨트롤러

답변

1

MVC에 맞는 모든 관심의 분리에 관한 디자인 패턴입니다 않습니다. 나는 JavaScriptResult가 그 원칙을 깨뜨리는 것처럼 피할 수있는 어떤 것이라는 것을 자주 듣는다. 제 생각에는 MVC가 강력한 도구를 제공한다는 점을 명심해야합니다. 그러나 그것은 당신에게 달려 있습니다. 어떻게 할 것입니까? JavaScript XHR/Ajax는 GUI 렌더링보다 많은 것을 제공 할 수 있지만 고려 사항과 함께 사용해야합니다. 사실, 가장 간단한 방법조차 사용하지 않아도되지만, 우리가 사용하지 않아야 함을 의미하지는 않습니다. :)

물론 페이지에서 JavaScript를 사용하고 JSON으로 먹이면 완벽하고 훌륭하게 사용할 수 있습니다. 대부분의 경우 충분합니다. 때로는 MVC 패턴 또는 DRY 원칙/기타 우수 사례에 100 % 적합하도록 선택해야합니다. 나는 특정한 상황에서 당신이 생각하는 것을하는 것이 최선이라고 생각합니다.

WebGrid 도우미의 GetContainerUpdateScript 메서드 http://msdn.microsoft.com/en-us/library/system.web.helpers.webgrid.getcontainerupdatescript(v=vs.99).aspx을 사용하여 jquery oneliner를 전달하여 webgrid 데이터를 업데이트하십시오. 이 경우 View에 모두 포함되어 있지만 비슷한 코드가 컨트롤러의 일부일 수 있습니다. 예를 들어 세션 ID와 같은 고유 한 식별자를 기반으로 POST 요청을 묶는 스크립트를 예로 들어 보겠습니다.

내 의견으로는 다른 문제를 피하기 위해 View와 Controller 사이의 얇은 빨간 선을 밟는 것 (그리고 때로는 약간 횡단하는 것)이 더 깔끔하고, 재사용 가능하며 유지 보수가 용이해야합니다.