이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 19676|회답: 2

[팁] MVC 메타데이터 ViewData.ModelMetadata

[링크 복사]
게시됨 2017. 6. 28. 오후 9:12:49 | | | |

모델메타데이터는 MVC에서 중요한 개념으로, 모델의 유형, 모델에 포함된 속성, 어떤 속성이 존재하는지, 속성에 어떤 특성이 있는지 등을 포함하지만 이에 국한되지 않습니다.

MVC3.0 ASP.NET 기본 모델 메타데이터를 제공하며, DataAnnotationsModelMetadata는 ModelMetadata로부터 상속받아 기본 모델용 메타데이터 제공자입니다(추가로 시스템은 기본 모델 메타데이터 제공자인 DataAnnotationsModelMetadataProvider를 제공합니다)

public class DataAnnotationsModelMetadata : ModelMetadata

그 구성자는 다음과 같습니다

public DataAnnotationsModelMetadata(DataAnnotationsModelMetadataProvider provider, Type containerType, Func modelAccessor, Type modelType, string propertyName, DisplayColumnAttribute displayColumnAttribute);


DataAnnotationsModelMetadata 클래스는 여러 일반적으로 사용되는 속성을 가지고 있습니다

DisplayName 표시명, DisplayFormatString 형식 문자열

TemplateHint는 어떤 템플릿을 사용할지 선택할 수 있는 값을 받습니다


DisplayName의 경우, LabelFor<TModel, TValue> 메서드는 이 속성을 이용해 라벨 텍스트를 생성합니다.  그 말은모델에서 DispalyName 속성이 정의되면, 뷰에서 html.editForModel() 메서드를 사용하세요이 모델의 속성에 대해 자동으로 레이블 태그 "<label for="username"> 이름 </를 표시합니다</label>.

  

[display( name="name", order=2)] //order 속성은 HTML 페이지의 순서를 변경합니다
  공개 문자열 사용자 이름 { get; 세트; }




HTML 소스 코드:




사용자 이름 속성에 사용되는 Display 속성은 System.ComponentModel.DataAnnotations.DisplayAttribute 클래스로, 엔터티 분할 클래스의 타입과 구성원에 대해 지역화 가능한 문자열을 지정할 수 있는 일반적인 기능을 제공합니다


System.Web.MVC와 System.ComponentModel.DataAnnotations의 기능들도 있는데, 이들 이름은 모두 XXXXAttribute와 유사한 특징 클래스로, 특정 사용 범위를 가집니다. 일부는 모델 속성을 제한하고, 어떤 것은 Contrller를, 어떤 것은 Actions를 제한합니다.


다음은 이 두 네임스페이스에서 내장되고 일반적으로 사용되는 특징 클래스 목록입니다

1) System.Web.MVC 공간

AcceptVerbsAttribute, ActionFilterAttribute, ActionNameAttribute, AsyncTimeoutAttribute, AuthorizeAttribute, BindAttribute,

숨겨진 입력 속성

ActionFilterAttribute는 모든 행동 필터 속성의 기본 클래스를 나타냅니다

HttpDeleteAttribute 클래스는 연산 메서드가 HTTP DELETE 요청만 처리하도록 제한하는 데 사용되는 속성을 나타냅니다

HttpGetAttribute, HttpPostAttribute 속성으로, 연산 메서드가 PUT 요청만 처리하도록 제한합니다

HttpPutAttribute는 연산 메서드가 HTTP PUT 요청만 처리하도록 제한하는 데 사용되는 속성을 나타냅니다.


예시: ActionNameAttribute는 실제 액션명을 지정하며, 사용법은 다음과 같습니다

[ActionName()]

공개 행동결과 지수()


예시: HiddenInputAttribute 클래스는 속성 값 또는 필드 값을 숨겨진 입력 요소로 렌더링할지 여부를 나타내는 속성을 나타냅니다




이전의:[답변] MySql.Data.MySqlClient.MySqlConnection은 [B]MySql.Data.MySqlC...
다음:Uncaught TypeError: 정의되지 않은 속성 'unobtrusive'를 설정할 수 없습니다
 집주인| 게시됨 2017. 6. 28. 오후 9:14:05 |
모델메타데이터



 집주인| 게시됨 2017. 12. 1. 오후 4:53:12 |


부동산 코드를 확인하려면 ViewData:

ViewDataDictionary viewData2=new ViewDataDictionary(ViewData["Test"]);
viewData2.ModelMetadata.Properties;
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com