사이에 면도칼 선언 도우미의가 나는 test.cshtml 파일이 모두 2 개 MVC 웹 프로젝트 (WEB1 및 Web2입니다) 1 개 프로젝트를 포함하는 공유 뷰 (공통) (using the razorgenerator of David Ebbo)
WEB1과 Web2입니다 있다고 가정 해 봅시다 . 두 test.cshtml 파일의 여러 코드 블록은 완전히 동일합니다.
다른 프로젝트에있는 여러 cshtml 파일간에 declarative helper (@helper)을 공유 할 수 있는지 알아 내려고합니다. 그래서 내 App_Code에 cshtml 파일을 두는 것은 도움이되지 않습니다 (각 웹 프로젝트에 1이 있어야합니다. 분명히 원하는 것은 아닙니다).
나는 '공통'프로젝트에서 공유 부분 뷰를 많이 만들 수 있지만 각 부분에 HTML의 아주 작은 부분이 포함 된 20 개의 cshtml 파일을 만드는 오버 헤드가있는 것 같습니다.
표준 도우미 메서드 (static string GenerateAPieceOfHtml(this HtmlHelper helper, ....)
)를 만들 수 있다는 것을 알고 있지만, cshtml 파일에서 HTML을 작성하는 편이 쉽습니다.공유하는 여러 MVC 웹 프로젝트
잠시 생각하면 I bumped into an answer that would allow me to do it으로 생각됩니다. 그러나 내가 주석에 쓴 것처럼, 그 코드는 나를 위해 컴파일되지 않았다.
는 내가 다른 포스트의 코드를 시도했다 .. csharpsi이 코멘트에 요청으로 내 질문에 명확 :)
[업데이트]
희망하지만 나를 위해 모든 HTML을 뱉어하지 않았다 . 나는 그 답변이 아마 13 개의 업보가 있기 때문에 그 트릭을해야한다고 생각하기 시작했기 때문에 두 번째 시도를하기로 결정했다.
다시 출력을 얻지는 못했지만 조금씩 시도했다. 성공!
@{
var html = new Test().DoSomething(Model);
@html
}
다른 버전 일 :
이 작업을 수행하는 버전이@{ new Test().DoSomething(Model); }
:이 시도되었다
(페이지의 모든 HTML을 뱉어하지 않는)
@(new Test().DoSomething(Model))
이 질문과 관련하여 어떻게해야합니까? 삭제 하시겠습니까? 나 자신의 답변을 작성 하시겠습니까?
'HelperResult'를 정적으로 선언하지 않고 다른 게시물의 코드를 사용해 보셨습니까? – simonlchilds
나는 다음과 같이 말하고 싶다 : 자신의 의견을 가지고 올바른 길을 걷는 사용자를 인용하여 스스로 대답하라. – superjos