programing

ASP.NET MVC의 다른 컨트롤러에서 보기 표시

minimums 2023. 5. 18. 20:51
반응형

ASP.NET MVC의 다른 컨트롤러에서 보기 표시

다른 컨트롤러에서 보기를 표시할 수 있습니까?

예를 들어, 나는 가지고 있습니다.CategoriesController그리고 aCategory/NotFound.aspx뷰. 에 있는 동안CategoriesController나는 쉽게 돌아올 수 있습니다.View("NotFound").

이제 나한테 있다고 말해봐요.ProductsController및 제품을 추가하기 위한 작업 및 보기.그러나 이 작업을 수행하려면 제품을 추가할 카테고리가 있어야 합니다.예를들면,Products/Add/?catid=10.

다음을 기준으로 카테고리를 찾을 수 없는 경우catid저는 보여드리고 싶습니다.NotFound카테고리 컨트롤러에서 보기(Categories) 컨트롤러에서 보기CategoryNotFound제품 컨트롤러 아래에서 볼 수 있습니다.

이것이 가능한가요 아니면 제가 잘못된 방식으로 일을 구성하고 있나요?이것을 하는 좋은 방법이 있습니까?

예. 기본적으로 ASP.NET MVC는 다음에서 먼저 확인합니다.\Views\[Controller_Dir]\하지만 그 후에 뷰를 찾지 못하면 체크인합니다.\Views\Shared.

공유 디렉토리는 특히 여러 컨트롤러 간에 보기를 공유하기 위해 존재합니다.공유 하위 디렉토리에 보기를 추가하기만 하면 바로 이동할 수 있습니다.

네가 한다면.return View("~/Views/Wherever/SomeDir/MyView.aspx")원하는 보기를 반환할 수 있습니다.

사용할 수 있는 항목:

return View("../Category/NotFound", model);

ASP.NET MVC 3에서 테스트되었지만 ASP.NET MVC 2에서도 작동해야 합니다.

네, 가능합니다.반환 aRedirectToAction()다음과 같은 방법:

return RedirectToAction("ActionOrViewName", "ControllerName");

해보셨습니까RedirectToAction?

네, 가능합니다.다음과 같은 작업 반환:

return RedirectToAction("View", "Name of Controller");

예:

return RedirectToAction("Details/" + id.ToString(), "FullTimeEmployees");

이 접근 방식은 GET 메소드를 호출합니다.

또한 다음과 같은 작업에 값을 전달할 수 있습니다.

return RedirectToAction("Details/" + id.ToString(), "FullTimeEmployees", new {id = id.ToString(), viewtype = "extended" });

JavaScript/jQuery에서 임의의 컨트롤러를 호출할 수도 있습니다.404 또는 다른 사용자 컨트롤/페이지를 반환하는 컨트롤러가 있다고 가정합니다.그런 다음 클라이언트 코드에서 컨트롤러를 실행할 주소를 호출하여 HTML 형식으로 결과를 반환할 수 있습니다. 클라이언트 코드는 반환된 결과를 가져와 원하는 페이지 어디에나 저장할 수 있습니다.

이 코드를 사용하면 다음과 같은 컨트롤러를 얻을 수 있습니다.

var controller = DependencyResolver.Current.GetService<ControllerB>();
controller.ControllerContext = new ControllerContext(this.Request.RequestContext, 
controller);

언급URL : https://stackoverflow.com/questions/879852/display-a-view-from-another-controller-in-asp-net-mvc

반응형