2011-12-22 2 views
1

내 사이트에는 양식 수가 많습니다. 모두 크게 다릅니다. 그러나 입력에 따라 몇 가지 텍스트 상자와 유효성 검사 메시지가 모두 공유되는 요소가 있습니다.부분보기 내의 양식 요소와 논리

asp.net MVC3을 사용하고 있으며 코드 재사용을 위해이 공유 요소를 모든 형식에 포함될 부분 뷰에 넣고 싶습니다. 이 부분보기는 로직을 수행하여 입력을 점검하고 이에 따라 유효성 검증 메시지를 표시해야합니다.

아무에게도 내가 할 수있는 방법에 대한 지침이 있습니까? 미리 감사드립니다.

+0

PartialView를 사용하지 않고 하위 뷰 클래스의 EditorTemplate/DisplayTemplate을 사용하고 싶습니다. – BigMike

답변

3

주에서 값을 전달

이 MyOtherView.cshtml에서 지금
public class MyOtherViewModel 
{ 
    public CommonViewModel CommonViewModel {get;set;} 
    //Other Properties here 


} 

쉽게 부분 뷰를 렌더링 할 수있는 다른 뷰 모델에 대해 말해 지금

public class CommonViewModel 
{ 
    public bool IsValid {get;set;} 
    public string Message {get;set;} 

} 

을 말하여 일반보기의 뷰 모델 만들기 보기

@model MyOtherViewModel 
@Html.Partial("commonView",Model.CommonViewModel) 

이 정보가 도움이되기를 바랍니다.

건배

+0

+1 : 중첩 모델을 사용하는 것에 동의하지만 PartialView 대신 EditorTemplate/DisplayTemplate을 정의하는 것이 더 좋습니다. – BigMike

+0

감사합니다. 그러나이 경우 EditorTemplate의 차이점은 무엇입니까? – Parminder

+0

잘 표면에 EditorTemplates 부분 뷰처럼 보일지도 모르지만 그것은 표면에만 의미 론적으로 템플릿은 강력하고 프레임 워크에서 사용할 수 있습니다 (예 : @EditorFor (Model)). 템플릿에 모두 남겨 둡니다. 그 일. 늘 그렇듯이 특정 시나리오 (IT의 99.99 %와 같은)에 따라 다릅니다. – BigMike

0

나는 대략적인 코드를 작성하고 있으므로 그에 맞게 수정하십시오. 다음과 같이 Parital View를 사용하고 코드를 작성하십시오.

@ Html.BeginForm ('actionname', 컨트롤러)
{
@ Html.TextBox ('ABC')

}
다음
[포스트처럼 컨트롤러의 방법을 만들 ]
공공 ActionResult ActionName() {

}


귀하의 페이지에이 부분보기를 넣으십시오.