2012-06-05 9 views
0

지금의 내가 등록 모델을 가지고 있고이 있다고 가정 해 봅시다 : 표시 이름이 실제로 비밀 질문이되도록모델에 속한 레이블을 어떻게 동적으로 설정할 수 있습니까?

[Display(Name = "")]
public string SecretQuestion { get; set; }

가 어떻게 동적으로 [Display(Name = "")]를로드 할 수 있습니다. 데이터베이스에서 질문을 받고 있는데 동적 인 것이 필요합니다.

답변

0

가 ViewBag로 데이터를로드하고 레이블을 채 웁니다 ViewBag를 사용합니다.

0

동적 데이터에 눈에 거슬리지 않는 유효성 검사 속성을 사용할 수 있다고 생각하지 않습니다. 정보를보기로 보내고 수동으로 표시해야합니다.

이것은보기를 생성하는 방법에 따라 여러 가지 방법으로 수행 할 수 있습니다.

그것을하는 아주 간단한 방법은 다음과 같습니다

컨트롤러 :

myViewModel.SecretQuestion = GetSecretQuestion(); 

보기 :

@Html.DisplayFor(model => model.SecretQuestion) 
@Html.TextBoxFor(model => model.SecretQuestion) 
+0

나는 그런 식으로 시도했다. 내 컨트롤러에서 내 모델에 액세스하는 방법을 모르겠지만 MVC의 전체 아키텍처를 아직 이해하지 못했다. – Pittfall

+0

컨트롤러에서 네임 스페이스를 가져와야한다. 모델은 예를 들어 있습니다. 'MyProject.Models 사용하기; '. 보기에서 이것은 페이지 상단에 다음과 같이 선언됩니다 :'@model MyViewModel' 그리고 컨트롤러'return View (myViewModelWithData);를 통과했습니다. – Terry

+0

그러나 컨트롤러 메소드의 "HttpGet"버전은 페이지로드 및 모두가 반환 ContextDependentView(); – Pittfall

관련 문제