2009-04-20 5 views
0

모든보기에 2 개의 코드 숨김 파일이 각각있는 이전 버전의 Asp.Net MVC로 작성된 웹 응용 프로그램을 리팩터링합니다.코드없이 부분 페이지 속성 이동

또한보기가 제대로 작동하는 경우 대부분의 파일이 비어있는 상태에서 모든 코드 숨김을 시작하려고합니다. 어떻게 하나의 페이지에서 그들을 복제 할 완전히 (나는이 방법의 의견에 관련이없는 알)을 제거하기 전에

public partial class List { 
    public Message NewMessage { get { return new Message(); } } 
} 

:

는 코드 숨김에서이 ​​같은 특성을 가지고 그 중 몇 가지가 있습니다 aspx 또는 ascx?
방금 ​​공개 메서드를 복사하여 < %%> 태그에 붙여 넣으려고했으나 작동하지 않습니다.

답변

3

왜 내가이 접근법을 처음 사용했는지 묻겠습니다. 나는 당신이 당신의 View을 강하게 타이핑함으로써 같은 것을 얻을 수 있다고 생각하고, ViewModel으로 메시지를 전달합니다. 이미 강력 View를 입력 한 경우

Inherits="System.Web.Mvc.View<Message>" 

하면, 당신은 예를 들어, 메시지의 여지가 클래스 라이브러리에서 사용자 정의 클래스를 만들 수있는 것은

public class ModelWithMessage { 
    public Message Message { get; set; } 
    public Object Model { get; set; } 
    public ModelWithMessage(Message Message, Object Model) { 
     this.Message = Message; 
     this.Model = Model; 
    } 
} 

당신은 물론 그 형태는 일반적인 만들 수 있습니다 ModelWithMessage<T> 구조를 허용하고 Model을 원하는 형식으로 캐스트하지 않아도됩니다.

TempData을 사용하는 또 다른 방법입니다. 당신의 컨트롤러에서, 그 다음에

TempData["Message"] = "Hello world!"; 

을 설정하여 View 당신이 당신의 메시지 클래스에 포함 된 내용에 따라 선택할 접근

<%= TempData["Message"] %> 

로 간단하게 메시지를 작성합니다. 당신이 :)

우선은 컨트롤러 클래스 밖으로 이러한 방법을 이동하고 필요한 데이터를 전달하는 것 '나는이 방법의 의견에 관계하지 않는 알고'말한대로

0

당신은 거의 자신이 대답했습니다 (코드 네임이 적절한 위치라고 가정하면) 코드 숨김 파일에서 모든 기능을 제거하고 다시 깨끗하게 분리하면 뷰에서 코드 숨김 파일을 제거 할 수 있습니다.

관련 문제