2014-03-25 4 views
0

뷰와 컨트롤러가 내 솔루션의 다른 프로젝트에있는 MVC 프로젝트에서 작업하고 있습니다.다른 프로젝트의 컨트롤러에서 HtmlHelper를 사용하는 방법은 무엇입니까?

내가 해결하려고하는 문제는 다음과 같습니다. 몇 가지 정보와 HTML 문자열로 Json을 반환해야하는 작업이 있습니다.

이 HTML 문자열은 이미 부분보기 안에 있습니다. 이 부분은 어떤 컨트롤러의 어떤 동작으로 인해 반환되지 않습니다. 다른 뷰 내부에서 호출됩니다.

컨트롤러 내부에서 HtmlHelper를 사용하는 것이 좋지 않다는 것을 읽었습니다. 그러나, 내가 그것을하지 않으면, 나는 html (부분보기 및이 특정 작업에 문자열로) 중복됩니다.

내가 원하는 것은 뷰를 문자열로 렌더링하여 HTML을 뷰에 중앙 집중화 할 수있게하는 것입니다. 뷰를 문자열로 렌더링 한 후에 반환 된 json 객체의 속성으로 반환 할 수 있습니다.

내가 말했던 것처럼 컨트롤러는 이미 다른 프로젝트에 있으며 이미 System.Web.Mvc을 참조하고 있습니다. 하지만 일단 "HtmlHelper"라고 입력하면 "부분"방법은 옵션 안에 포함되지 않습니다. 어떤 계절에는 System.Web.Mvc.Html.PartialExtensions에 도달해도 Visual Studio에서 사용하지 못하게됩니다.

컨트롤러 내부에서 HtmlHelper를 사용하지 않고도이 문제를 해결할 수있는 다른 방법이 있습니까?

그리고 Visual Studio는 사용할 위치를 기준으로 필터 방법을 사용할 수 있습니까? 아니면 참조가 누락 되었습니까?

시 : 내가 비주얼 스튜디오 2010을 사용하고, 닷넷 프레임 워크 4, Asp.Net MVC 미리 4.

감사합니다.

답변

1

부분 뷰를 문자열로 렌더링하고 JSON 응답의 일부로 반환하려는 것처럼 들립니다. 다음 방법을 사용하면이 작업을 수행 할 수 있습니다.

해당 컨트롤러 나 컨트롤러를 파생하는 기본 컨트롤러에서 구현하십시오.

+0

도움을 주셔서 감사합니다. 그러나 저는 Visual Studio가 컨트롤러 내에서 HtmlHelper 사용을 "차단"하는 이유와 방법에 대해 궁금합니다. (또는 아마도 참조가 누락되었습니다.) –

+0

@ user1677919 그것의 사용을 막을 지 모르겠지만'HtmlHelper'는 생성자에서 전달 된'ViewContext'와'IViewDataContainer'를 필요로합니다. 둘 다 개념적으로 Views에 묶여 있으므로 컨트롤러 액션에서 사용하게됩니다 의도 한 용도가 아닙니다. –

+0

아, 알겠습니다. 다시 도움을 주셔서 감사합니다. –

관련 문제