간단히 말해서 어떤 종류의 데이터 저장소에서 데이터를 가져 와서 여러 클래스 중 하나를 반환하는 정적 클래스를 만들어 MVC 페이지 중 일부를 단순화하고 싶습니다. 일부 내부 플래그를 기반으로보기.MVC3 : 컨트롤러가 아닌 클래스에서 뷰 객체 반환
internal static class StaticPageContent
{
internal static ViewModels.Display GetPage(string Map = null, int? ID = null) {...}
internal static ActionResult ReturnView(ViewModels.CMS.Display vm) {...}
}
그런 다음 내 컨트롤러의 작업 중 하나에 내가 좋아하는 뭔가를 호출 할 수 있습니다
public ActionResult ActionName()
{
var vm = StaticPageContent.GetPage("/Home");
return StaticPageContent.ReturnView(vm);
}
경우 여러 (공유)보기 중 하나를 반환 할 것 ReturnView() 메소드 :
internal static ActionResult ReturnView(ViewModels.CMS.Display vm)
{
if (vm.useLoremIpsum)
return View("LoremIpsum", vm);
else
{
if (vm.canEdit)
return View("ViewReadWrite", vm);
else
return View("ViewReadOnly", vm);
}
}
을
컨트롤러가 아닌 클래스에서보기 (...) 객체를 반환하는 올바른 방법은 무엇입니까? 보기 (...)가 Controller 클래스의 일부이므로 위의 내용은 컴파일되지 않습니다.
참고 : 는 나는이 작업과 같이하지만 내 시간에 대한 요구 다른 방향으로 날을 보냈을 가지고 생각합니다. 이 프로젝트를 다시 열어서 내가 한 일을보고 여기에 게시 할 수 있기를 희망합니다. 계속 지켜봐!
내가 옳은 방향으로 당신을 가리 희망 무언가를 만들었습니다 http://stackoverflow.com/questions/3808076/using-the-razor-view-engine-in- a-different-way/3815216 # 3815216 – Buildstarted