2011-09-30 2 views
0

I의 구조는 다음과 같습니다ASP.NET MVC3 조합

조회수 :

기사

부분 조회수 :

예약

클래스

,

소개

자주 묻는 질문

페이지의 상단에

내 헤더에서는, 탐색 메뉴 - 특정 부분도를 가져 내 HomeController 클래스의 상이한 방법으로 호출 여러 Ajax.ActionLinks 함유하고 그 내용을 내 센터 DIV에 놓으십시오. 따라서 Faq 링크를 클릭하면 내 페이지의 가운데 DIV에있는 콘텐츠에 내 Faq의 부분보기가 포함됩니다. 이제는 전혀 다른 모습을 보이는 기사보기가 있습니다. 따라서 부분 뷰가 아닌 자신의보기가 분리되어 있어야합니다. 그리고 Html.ActionLink를 클릭하면 문제가 발생합니다. "기사 ", 필자가 원하는 기사 뷰로 이동했습니다.하지만 Ajax.ActionLinks 인 다른 링크 중 하나를 클릭하면 필자는 (다시 말해서) 내 홈 뷰로 변경된 뷰를 필요로하므로 그런 다음 요청 된 부분보기를 검색하여 내 센터 DIV에 배치 할 수 있습니다. 내가 어떻게 이럴 수 있니? 현재 AJAX.ActionLink는 내 기사보기에서 호출되는 동안 내 HomeController에 전화를 걸었지만 내 기사보기에는 존재하지 않는 내 센터 DIV의 콘텐츠를 대체하려고 시도하고 있으며 그 외에도 HomeView를로드합니다.

가장 좋은 방법에 대한 의견이 있으십니까? 또한, 나는 면도기 엔진을 사용하지 않습니다.

그래서 일련의 링크 인 탐색 메뉴는 내 Site.Master 파일에 있습니다. 다음은 내가 가지고있는 링크 중 하나입니다.

<%= Ajax.ActionLink("Book", "LoadBook", new AjaxOptions() { HttpMethod = "Post", UpdateTargetId = "content", InsertionMode = InsertionMode.Replace })%> 

이 링크를 클릭하면 내 HomeController의 LoadBook 메서드가 호출됩니다. 아래의 코드를 참조하십시오 : 내 Home.aspx보기에서

public ActionResult LoadBook() 
{ 
    return PartialView("Book"); 
} 

, 나는 다음과 같은 코드가 있습니다

<div id="content"> 
    <% Html.RenderPartial("Intro"); %> 
</div> 

이 코드가 자동으로 내 "소개"(소개)의 부분 뷰를로드하여을 초기에 홈 뷰를로드 할 때마다 기본값입니다. 기본적으로 "Articles"링크는 Html.ActionLink (Ajax.ActionLink와 반대)이므로 클릭하면 기사보기로 이동합니다. 예를 들어 기사보기에서 Site.Master 헤더의 "Book"Ajax.ActionLink를 클릭하면 코드는 "Book"부분보기로 "content"DIV를 업데이트하려고 시도합니다. 이 동작은 분명한 이유로 홈보기에서만 필요합니다. 그렇다면 내 Ajax .ActionLinks에 대해 내 동작보기와 다른보기를 볼 때 다른 동작을 수행하려면 어떻게해야합니까?

감사합니다.

크리스

+0

다른 사용자가 문제를 식별하는 데 도움이되는 relavent 코드를 공유하는 경우 ... – Rafay

답변

2

이런 종류의 아키텍처는 많은 문제를 일으킬 것입니다. stanrtes의 경우 어떤 페이지로도 링크 할 수 없습니다. 모든 콘텐츠는 기본 페이지에서 발생합니다.

GMail과 같은 앱에서는 정상적으로 작동하지만 대부분의 사람들은 페이지에 바로 가기를 저장하거나 친구에게 링크를 보낼 수없는 이유에 대해 혼란스러워합니다.

HTML은 각 페이지마다 고유 한 URL을 갖도록 설계되었습니다. 뭔가 다른 일을하려고 업스트림과 싸우고 있습니다. 단편을 사용하여 페이지의 다른 섹션으로 건너 뛰기를 원한다고 가정하십시오. 너는 그렇게 할 수 없다.

+0

귀하의 의견에 감사드립니다.하지만 아키텍쳐를 대체하지 않고 문제를 해결하는 데 도움이 필요합니다. – Chris

+0

귀하의 답변은 사실 모든 것을 각각의 견해로 나눌 수있었습니다. – Chris

+0

@Chris - 액션 방식만큼이나보기가 아닙니다. 뷰는 데이터의 뷰입니다. 액션 메소드는 페이지의 중앙 허브입니다 (예 : 컨트롤러 메소드). 동일한보기를 사용하여 다른 작업 방법으로 채우고 다른 결과를 얻을 수 있습니다. –