컨트롤러가 모델을 기반으로 뷰를 렌더링 할 때 인덱서 (ViewData [ "Property"])를 사용하여 ViewData 컬렉션에서 속성을 가져올 수 있습니다. ,Asp.net MVC User Control ViewData
<%= ViewData["DisplayMessage"] %>
내가이 제대로 DisplayMessage 렌더링 것이라고 생각 :
return View("Message", new { DisplayMessage = "This is a test" });
내 메시지 제어에 나는이 있었다 그러나, 나는 다음과 같은 사용하여 전화를 시도 공유 사용자가 제어 할 수 있습니다 그러나 null이 리턴됩니다. 주변에 땜질의 무거운 복용량 후, 나는 마침내 강하게 내 사용자 컨트롤 입력하기 위해 "MessageData"클래스를 만들었 :
public class MessageControl : ViewUserControl<MessageData>
을 지금이 호출은 작동합니다
return View("Message", new MessageData() { DisplayMessage = "This is a test" });
과 같이 표시 할 수 있습니다 이 다음 DisplayMessage 속성은 사용자 컨트롤 강력한 입력하지 않고도을 ViewData (. 즉을 ViewData [ "DisplayMessage"]) 컬렉션에 추가되지 않을 것이다 왜
<%= ViewData.Model.DisplayMessage %>
? 디자인에 의한 것인가? ViewData에 "DisplayMessage"에 대한 키가 포함되어있는 것이 합리적이지 않습니까? 물론