MvcHtmlString
안에 캡슐화 된 HTML 요소에 css 클래스를 삽입 할 수 있습니까?CSS 클래스를 MvcHtmlString에 삽입하는 방법은 무엇입니까?
나는 다음과 같은주의 사항으로, 폼 요소 (TextBox
, TextBoxFor<>
등)에 대한 MVC 확장 방법의 내 자신의 버전을 만드는, 짓고 있어요 프레임 워크의 일환으로 임무를 봤는데 :
- 이미 사이트 용으로 설계된 스타일과 일치하도록 CSS 클래스를 포함하여 올바른 HTML 마크 업을 만들어야합니다. 대다수의 경우, 이는 단순히 특정 클래스를 추가하는 것을 의미합니다.
- 개발자가 MVC 확장의 방법은
MvcHtmlString
그래서 간단한 방법을 반환하지 모든 경우 가
대부분의를 모방를 사용하여 편안하게 느낄 수 있도록 그들은 가능한 한 MVC 확장 방법에 참으로해야한다는 기능은 내 메서드에서 직접 이러한 메서드를 호출하는 것입니다.
`@ Ou.TextBoxFor (m => : 내 프레임 워크를 사용하고, 개발자의 라인을 따라 뭔가를 부를 것이다하는TextBox
, 예를 들어, 생성하고자하는, 그래서 HTML을 도우미,OuHelper
내 자신이 m.Username)
그리고 난과 같이 렌더링하는 결과 HTML을 싶습니다
<input type="text" name="Username" id="Username" class="int-text" />
MVC 프레임 워크에있는 것처럼 자체적 인 오버로드 버전을 만드는 경우, 필요에 따라 추가 CSS 클래스를 추가 할 수 있지만 해당 HTML 출력의 작은 변화에 대해서는 과도한 것처럼 보입니다. 모든 오버로드에 대해 동일한 구현을 제공해야합니다 (TextBox
만 있으면 일반 버전과 비 제너릭 버전을 모두 계산할 때 약 12 개가 필요합니다). 내가 뭘하고 싶은지 TagBuilder
은 역순으로 (출력으로 시작하여 MergeAttributes
과 같은 것을 가능하게하는 객체를 생성한다.)하지만 가능하지는 않다.
분명히 : 내가 쓰고있는 프레임 워크 코드는 css 클래스 자체를 추가해야하지만 개발자가 자신 만의 CSS 클래스를 추가하는 확장 메서드를 사용하는 경우에도 가능해야합니다. 이들은
환호성 Daniel - 그래,이 라인을 따라 뭔가를 할 것 같습니다. 너무 많은 오버로드를 생성하지 않아도되기를 희망했지만 현재 MVC 프레임 워크가 제공하는 것과 동일한 수준의 유연성을 제공해야합니다. 몇 가지 확장 메서드를 만들고 필요에 따라 클래스를 html 특성에 병합합니다 (개발자가 내 프레임 워크를 사용하여 필요에 따라 고유 한 사용자 지정 클래스를 추가 할 수 있도록) – levelnis