2013-11-27 2 views
0

이것은 MVC - 면도기 문제입니다. [환경은 MVC 4.0입니다.] 하나의 편집 가능한 속성과 하나의 표시 전용 속성이있는 뷰 모델이 있습니다. 내 견해로, 나는 편집 가능한 속성에 대해 @ html.TextBoxFor() 메서드를 사용하고 있습니다. 디스플레이 전용 속성을 표시하기 위해 @ Model.Property를 직접 지정합니다. 편집 가능한 속성에 대한 서버 측 유효성 검사가 있고 편집 가능한 속성에 대해 게시 된 값이 유효하지 않은 경우보기의 유효성 검사 요약 섹션에 유효성 검사 오류가있는 동일한보기가 반환됩니다. 이제는 문제가 있습니다 - 편집 가능한 속성에 대해 유효하지 않은 값으로 View 양식을 제출 한 후에 편집 가능한 속성에 대한 오류가 표시되지만 표시 전용 속성은 비어 있습니다. MVC는 내 표시 전용 속성에 BLANK/Nothing을 게시합니까? 이 문제를 어떻게 해결할 수 있습니까?포스트 백 후에 내보기 모델의 읽기 전용 속성이 공백으로 표시되는 이유는 무엇입니까?

+0

. 또한 질문을 퍼뜨려 가독성이 뛰어납니다 (텍스트의 벽이 아닌). – crashmstr

+0

당신은 일종의 필드에 그것을 저장해야 할 것입니다. 또는 수행중인 작업에 따라 표시 템플릿을 작성할 수 있습니다. –

+0

@crashmstr, 고마워, 내가 따라 올게. – Gaurav

답변

2

당신이보기 모델을 제외 할 경우는 바인딩 속성의 조합이 모델 서버에 바인드 할 때 포함 할 단지 특성을 가진 인터페이스를 사용할 수있는 속성.

는 여기를 참조하십시오 : 당신은 코드로 텍스트를 표시 할 수있는 역 따옴표의 사용을 포함하고 있으며,이 사이트에 대한 포맷하는 방법을 살펴 할 수 있습니다 http://www.dotnetcurry.com/ShowArticle.aspx?ID=439

+0

정확히 내가 뭘 찾고 있었는지. 감사! – Gaurav

0

양식 필드 (입력 등 ..)에서 속성을 유지하지 않으면 게시 할 때 사용할 수 없습니다.

@Html.HiddenFor 메서드를 사용하면 게시 할 때 사용할 수 있도록 양식에 속성을 표시하여 양식에 유지하십시오.

@model YourCustomerViewModel 
@using(Html.BeginForm()) 
{ 
    <span>@Model.EmailAddress</span> 
    @Html.TextBoxFor(s=>s.FirstName) 

    @Html.HiddenFor(s=>s.EmailAddress) 
    <input type="submit" value="Save" /> 
}