2011-10-24 11 views
0

I가이보기 I을 렌더링하기 위해 다음과 같은 HTMLAsp.Net MVC 도우미 Html.Hidden

<div id="Detail-Item" class="hidden"> 
@Using Html.BeginForm("Save", "Agency", Nothing, FormMethod.Post, New With {.id = "Detail-form"}) 
@<fieldset> 
    <legend>Agency</legend> 
    @Html.ValidationSummary() 
    <div class="editor-label"> 
     @Html.LabelFor(Function(model) model.Id): 
    </div> 
    <div class="editor-field"> 
     @Html.TextBoxFor(Function(model) model.Id, New With {.class = "textbox-id input-key textbox-inactive", .data_field = "Id", .readonly = "readonly"})  
     @Html.ValidationMessageFor(Function(model) model.Id, "*") 
    </div> 
    <div class="editor-label"> 
     @Html.LabelFor(Function(model) model.Title): 
    </div> 
    <div class="editor-field"> 
     @Html.TextBoxFor(Function(model) model.Title, New With {.class = "textbox-name input-text focus", .data_field = "Title"}) 
     @Html.ValidationMessageFor(Function(model) model.Title, "*") 
    </div> 

    <div class="hidden"> 
     @Html.Hidden("UserCreation", String.Empty, New With {.class = "input-audituser", .data_field = "UserCreation"}) 
     @Html.Hidden("UserModification", String.Empty, New With {.class = "input-audituser", .data_field = "UserModification"}) 
     @Html.Hidden("DateCreation", String.Empty, New With {.class = "input-auditdate", .data_field = "DateCreation"}) 
     @Html.Hidden("DateModification", String.Empty, New With {.class = "input-auditdate", .data_field = "DateModification"}) 
    </div> 
</fieldset> 
End Using 
</div> 

을 가지고 나는 부분보기 이름 BaseViewModel을 만들었습니다

Public Class BaseViewModel 

Public Property Id as integer 
Public Property Title As String 

<DisplayName("Creation Date"), Required(), ScaffoldColumn(False)> 
Public Property DateCreation As String 
<DisplayName("Creation User"), Required(), ScaffoldColumn(False)> 
Public Property UserCreation As String 
<DisplayName("Modification Date"), ScaffoldColumn(False)> 
Public Property DateModification As String 
<DisplayName("Modification User"), ScaffoldColumn(False)> 
Public Property UserModification As String 

End Class 

다음 모델 @ html.EditForModel을 사용합니다. 내 문제는 심지어 내가 Html.Hidden DateCreation 및 UserCreation 모델 속성에 대해 생성 된 Html 이러한 필드에 대해 "필수"데이터 유효성 검사 특성이 포함되어 있습니다.

이렇게하면 작동합니까?, 그렇다면 어떻게 피할 수 있습니까?

+1

아무 문제가 없습니다. – SLaks

답변

2

제공된 모델에서 예상 한 동작입니다. 모델은 두 속성을 모두 Required로 지정하므로 숨겨진 필드에 눈에 띄지 않는 유효성 검사 특성이 추가됩니다.

2

숨겨진 것은 유효성이 검사되지 않는다는 의미는 아닙니다. 빈 문자열로 숨겨진 필드를 초기화하는 대신 부분 뷰에서 적절한 날짜/시간을 설정하는 것이 좋습니다. DateTime.Now와 같은 것이 작동해야합니다.