다양한 모델 클래스에 대한 여러 EditorTemplates가 있습니다. 이 템플릿들 안에서 분명히 모델의 속성을 참조해야합니다. 내 문제는 Model.Id (예를 들어)의 직접 구문을 사용할 때 값이 null이라는 것입니다. 또 다른 예는 빈 문자열을 반환하는 Model.Name입니다. 그러나 표현식 (예 : @ Html.TextBoxFor (i => i.Name))에서 모델을 참조하면 값이 있습니다. 이 예에서MVC 3 EditorTemplate - 모델 속성이 비어 있습니다.
@model Vigilaris.Booking.Services.CompanyDTO
<div>
<fieldset class="editfieldset">
<legend class="titlelegend">Company Details</legend>
<ol>
<li>
@Html.TextBox("tb1", @Model.Id)
@Html.TextBox("tb2", @Model.Name)
</li>
<li>
@Html.LabelFor(i => i.CreatedDate)
@Html.DisplayFor(i => i.CreatedDate)
</li>
<li>
@Html.LabelFor(i => i.Name)
@Html.TextBoxFor(i => i.Name)
</li>
<li>
@Html.LabelFor(i => i.Description)
@Html.TextAreaFor(i => i.Description)
</li>
<li>
@Html.LabelFor(i => i.Phone)
@Html.TextBoxFor(i => i.Phone)
</li>
</ol>
</fieldset>
</div>
, 모델의 데이터를 표시하는 동시에, labelFor DisplayFor 및 헬퍼 기능을 사용하는 모든 코드 : 상기 설명하기
은 여기 코드이다. 그러나 Html.TextBox 코드 부분은 Model.Id에 0을 반환하고 Name에 빈 문자열을 반환합니다.
모델을 직접 참조 할 때 실제 모델 데이터에 액세스하지 않는 이유는 무엇입니까?
아마도 원인은 아니지만 한 가지로 중복 @이 있습니다. @ Html.TextBox ("tb1", Model.Id)를 사용하십시오 (Model 앞에 @ 표시가 없습니다). –