2017-04-18 10 views
0

저는 최근 ASP.NET과 C#의 다소 오래된 웹 폼 앱에 역할/권한 기능을 추가했습니다. 이제는 역할 추가/편집, 역할에 대한 사용 권한 추가/편집 (사용 권한은 테이블에 있지만 수정 불가능)의 두 가지 간단한 기능이 필요합니다.ASP.NET C# Web Forms - 레거시 응용 프로그램에서 대화 형 CRUD 페이지를 만드는 방법?

  • 역할 테이블 : 테이블은 (내가 굵은 사람을위한 인터페이스 필요)과 같이 어느 정도이며, 역할 ID를 RoleName
  • 권한 테이블 : PermissionID, PermissionName
  • Roles_Permissions 테이블 : 역할 ID, PermissionID

어떻게하면 포스트 백이없고 같은 페이지에 두 기능이 모두 포함 된 대화식으로 만들 수 있습니까? 역할에 대한 드롭 다운을 시각화합니다. 하나를 선택하면 해당 역할에 대한 사용 권한 목록이 새로 고쳐지며 사용자가 사용 권한, RoleName을 변경하거나 역할을 추가/삭제할 수 있습니다. 페이지는 기존 마스터 페이지를 사용하여 모양을 웹 응용 프로그램의 나머지 부분과 일치시켜야합니다. 그것이 기능성을 제한 할 지 모르겠습니다.

구현이 가능한 한 비 관입 적이기 때문에 (이상한 플러그인이 없으며 클라이언트 측에서 구성하지 않고 현재 브라우저에서 작동). breeze, knockout 및 angularjs가 발견되었지만 Visual Studio 2012 (버전 11)의 ASP.NET C# Web Forms에 기능을 추가 할 수없는 경우 찾을 수 없습니다.

페이지를 작성하고 나중에 쉽게 유지 보수 할 수있는 가장 빠르고 쉬운 방법은 무엇이며이를 기반으로 나머지 웹 응용 프로그램을 "현대화"할 수있는 좋은 출발점이 될 수 있습니까?

+0

웹 폼에 적합하지 않습니다.이 기술은 모두 서버 쪽 논리 및 포스트 백입니다. 난 당신이 AJAX를 처리하는 좋은 클라이언트 쪽 libarary와 MVC를 시도하는 것이 좋습니다. –

+0

팁을 주셔서 감사합니다. 그러나 현재 모든 기존 웹 앱을 MVC로 변경할 수는 없지만 새로운 기능 만 필요합니다. 유사한 것을 달성 할 수있는 옵션이 없는가? – user7792598

+0

글쎄, 이것은 MVC에서하는 것처럼 쉽고 직관적이어서는 안됩니다. 바닐라 자바 ​​스크립트 (어쩌면 jQuery)와 AJAX를 추가 할 수도 있지만 제한적입니다. AngularJS와 같은 클라이언트 측 프레임 워크는 적어도 내 경험을 통해 Web Forms에서 제대로 작동하지 않습니다. –

답변

0

응용 프로그램에 표준 빈 aspx 페이지를 추가하고 Web Forms 응용 프로그램에 정상적으로 작동하게 할 수 있습니다. 탐색을 연결하고 마스터 페이지 (마스터 페이지를 사용하는 경우)를 가져 왔는지 확인하십시오.

여기에서 여러 가지 상황에 따라 몇 가지 작업을 수행 할 수 있습니다.

ASP.NET AJAX

은 원래 ASP.NET 웹 양식 도입, 웹이 모든 것을 함께 접착제하기 위해 코드 숨김에서 컨트롤과 작업 소량의 양식 사용되었다. 다른 솔루션보다 유연성이 떨어지지 만 사용자가 인용하는 시나리오에서는 문제가되지 않습니다. 다른 프로그래밍 모델보다 Web Forms가 더 편한 경우이 방법이 선호됩니다. 정책 또는 기존 응용 프로그램의 구조를 사용하면이 방법이 더 바람직 할 수도 있습니다.

단일 페이지 응용 프로그램 당신은 바람, 녹아웃 및 각도와 같은 프레임 워크를 언급했다. 그래서, 그것들에 초점을 맞추자. 다시 한 번, 귀하의 경험과 응용 프로그램에 따라, 이들은 매력적인 옵션이 될 수 있습니다. 나는 전체적인 재 작성에 더 적절하기 때문에 당분간 Angular만큼 멀리 가지 않을 것입니다. 다른 응용 프로그램에 포함될 수는 있지만 프로젝트 범위에는 너무 많은 작업 일 것입니다.

최소한 일반 JavaScript 및 AJAX로 만들 수 있지만 많은 코드를 작성해야합니다. 작은 jQuery를 추가하면 DOM 조작 및 AJAX 호출에 도움이됩니다. 나는 DOM 조작을위한 jQuery와 데이터 바인딩을위한 Knockout으로 오래된 애플 리케이션을 향상 시키는데 성공했다.아마 jQuery없이 할 수는 있지만 그렇게하지는 않을 것입니다. 이 두 라이브러리는 사용중인 환경에 대한 어떠한 가정도하지 않으며 더 큰 응용 프로그램 내에서 단일 페이지의 제한된 범위 내에서 제한을 두어 만족해야합니다.

+0

ASP.NET AJAX 컨트롤을 사용하여 종료했습니다. 일반적인 포스트 백으로 개발 한 후 방금 scriptmanager/updatepanel/contenttemplate을 추가했으며 포스트 백이 필요하지 않았습니다. 도움말 주셔서 감사합니다. – user7792598