문제

RESTFUL ASP.NET MVC 응용 프로그램에서 쿼리 문자열 변수를 사용하는 문제가 있습니다. 그것은 나머지 패턴을 위반합니까?

문제는 ASP.NET MVC가 다음과 같은 기본 경로를 사용한다는 것입니다.

/controller/action/id

다른 컨트롤러+액션 조합을 통과해야합니다.

/controller/action/id/controllerX/actionX

그러나 처음 세 매개 변수는 생략되고 마지막 두 가지가 첫 번째 커플로 취급되기 때문에 응용 프로그램의 근본이되면 작동하지 않습니다.

이 대신에 나는이 표기법을 대신 사용하고 싶은 유혹을 받고 있습니다.

/controller/action/id?Param=controllerX/actionX

루트에서도 작동합니다

http://domain/?Param=controllerX/actionX

그러나 이것은 편안합니까?

약간의 설명

PartialViews가있는 일반 내장보다 내 뷰에 대한 모듈 식 접근 방식을 원합니다. 많은 페이지에 표시되는 부분보기가 있으면 특정 부분보기에 대한 데이터를 추가해야합니다. 모든 싱글 특정 부분보기를 사용하는 뷰를 반환하는 컨트롤러 동작. 그리고 나는 그것이 일을하는 잘못된 방법이라고 생각합니다. 컨트롤러는 그렇지 않을 수도 있습니다 ) 메인 뷰의 일부가 되십시오.

부분적 견해 대신 렌더링 행동이 구조에옵니다. 나는 내 자신을 사용합니다 Html.RenderAction() 이는 자체 데이터 만 준비하는 일부 컨트롤러의 조치로 호출됩니다. 훌륭합니다.

첫 번째 문제는 HTTP 방법에있어서 모든 렌더링 동작으로 전파되었습니다. 그래서 나는 그것을 변경했고 내가 좋아하는대로 HTTP 방법을 제어 할 수 있습니다. 메인 뷰가 다시 게시되었는지 (따라서 게시물 사용) 일부 조치는 항상 GET를 사용하는 것일 수 있습니다.

문제는 이러한 동작이 자체 형태의 요소로 부분적인 견해를 반환하는 경우입니다. 내 하위 작업은 직접 게시 할 수 없으므로 (반환 할 뷰를 알지 못하기 때문에) 실제로 뷰에 게시합니다. 양식을 갖는 모든 하위 동작은 일반적으로 기본보기에서 전파 된 HTTP 방법이 있으므로 실제로 PostBack Action Execution을 입력합니다.

문제는 다시 게시 된 실제 양식 만 사후 조치를 실행해야한다는 것입니다. 다른 사람들은 Get 메소드를 사용해야합니다. 두 번째 컨트롤러/액션 쌍이 작동하는 곳입니다. 모든 하위 작업 양식 게시물이 다시 게시됩니다

mainViewController/action/?PostForm=controller/action

두 번째 매개 변수가 어떤 하위 동작 렌더링이 포스트 메소드를 전파 해야하는지 결정하는 데 도움이됩니다. 해당 특정 양식은 사후 조치에 정의 된대로 검증됩니다.

나는 이것이 구체적인 예를 가지고 내 문제를 조금 더 설명하기를 바랍니다. 이 문제는 내와 관련이 있습니다 어제의 질문.

도움이 되었습니까?

해결책

이 URL이 세션이나 쿠키 또는 클라이언트의 이전 브라우징 기록에 의존하지 않고 동일한보기가 반환되는 경우, 예, RESTFUL이라고 부릅니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top