2009-10-07 14 views
2

URL을 변경하지 않고 다른보기로 이동할 수 있습니까? 예를 들어, 내 인덱스보기에서 세부보기로 이동할 링크가 있지만 URL을 동일하게 유지하려고합니다.ASP.NET MVC - URL을 변경하지 않고 다른보기로 이동

고맙습니다. 케니.

+1

이 질문을보십시오 : http://stackoverflow.com/questions/752922/asp-mvc-redirect-without-changing-urlrouting –

+0

그가 원하는 것 같아요 (쿼리를 기반으로 다른보기로 이동하십시오.) 내가하고 싶은 것과는 조금 다릅니다. 고맙습니다. –

+0

실제로 이것이 매우 유용하다고 판명되었습니다! http://stackoverflow.com/questions/799511/how-to-simulate-server-transfer-in-asp-net-mvc –

답변

0

여러 컨트롤러 액션에서 동일한 뷰를 반환 할 수 있지만, 각 컨트롤러 액션은 고유 URL이 필요합니다

public class HomeController : Controller { 
    public ActionResult Index() { 
     return View("home"); 
    } 

    public ActionResult About() { 
     return View("home"); 
    } 
} 

당신이 URL을 변경하지 않고 다른 페이지의 내용을로드 할 수있는 링크를 원하는 경우 Ajax를 사용하여 서버를 호출하여 새로운 내용으로 변경해야하는 페이지 부분을 업데이트해야합니다.

0

당신이 그렇게하려는 이유는 모르겠지만, 당신은 세부 사항보기를 렌더링 Ajax.Actionlink을 .. 가질 수

무엇인지 확실하지 URL을 숨길 거의없는 이유가있다 .. 누군가가 더 나은 접근법을 줄 수 있다고 더 설명해 줄 수 있습니다.

+0

고객이 고유 한 ID로 방문 할 수있는 사이트가 있습니다 (예 : mysite.com/ABC123). 그러면이 URL에 색인 페이지가 렌더링됩니다. 이 색인 페이지에는 간단한 양식을 제출할 수있는 세부 정보 페이지로 연결되는 링크가 있습니다. 나는 기본적으로 URL을 동일하게 유지하려고합니다. 그게 전부입니다. –

1

이미 언급 한 것처럼 세부 링크를 Ajax.ActionLink으로 만들고 div의 내용을 변경할 수 있습니다.

내가 그것을 할 수있는 유일한 방법은 귀하의 세부 정보 링크를 단추로 만들고 인덱스 작업에 POST을 지정하는 것입니다. 버튼에 CSS를 적용하여 정상적인 HTML 링크처럼 보이게 할 수 있습니다.

편집
public class HomeController : Controller { 

    public ActionResult Index() { 
     return View("Index"); 
    } 

    [AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Index(int hiddenInputFieldId) { 
     return View("Details"); 
    } 
} 

:이 방금 사용할 수있는, 정말로 문제가 JonoW의 의견을 바탕으로

, 당신은 당신의 게시물에 '가짜'PARAM을 전달해야하지 숨겨진 그것을위한 입력 필드.

+0

감사합니다. Ajax를 살펴 보겠습니다. 액션 링크. 이 과정에서 세부 정보를 렌더링하기 전에 색인 내용을 숨겨야합니까? –

+0

대상 div를 지정하여 내용을 변경합니다. 따라서 색인 작업과 관련된 모든 내용이 'main'div에있는 경우 즉시 세부 정보 액션으로 바뀝니다 – Kirschstein

+0

이 작업은 컴파일되지 않고 색인() 메소드 서명은 동일하므로 어떻게 든 구분해야합니다. – JonoW

0

좋은 오래된 Server.Transfer을 사용할 수 있습니다. 그러나 나는 그것을 마치 detailed in this SO post처럼하는 것이 좋습니다. Server.Transfer() 코드를 사용하지 않고도 현재 작업에서 ActionMethod를 반환 할 수있는 쉬운 방법을 제공합니다.

+0

고맙다. 나는 그 포스트를 살펴볼 것이다. –

0

부분 검색 - 이렇게하면 다른 검색 화면을로드 할 수 있습니다. 샘플 코드는 다음과 같이 (이 내 실제 코드에 약간 다른,하지만 당신은 아이디어를 얻을 것이다)입니다 : 개인적으로 생각

<% Html.RenderPartial(Model.NameOfPartialViewHere, Model.SomeVM); %> 

그냥 URL을 변경하지 않는 이유, 내가 볼 수 없습니다를?

+0

고객의 요구 사항 일 뿐이므로 개인적으로 좋은 아이디어라고 생각하지 않습니다. –

관련 문제