2011-03-25 2 views
0

모델 속성을 기반으로 생성되지 않을 전망 : 나는 다음을 얻을이 모델을 기반으로 새로운 강력한 형식의 뷰를 만들 때나는 사용자 정의 모델과 같이이

public class ViewModel 
{ 
    [DisplayName("Property One")] 
    string PropertyOne { get; set; } 

    [DisplayName("Property Two")] 
    string PropertyTwo { get; set; } 

    .... 
} 

:

<% using (Html.BeginForm()) {%> 
    <%= Html.ValidationSummary(true) %> 

    <fieldset> 
     <legend>Fields</legend> 

     <p> 
      <input type="submit" value="Create" /> 
     </p> 
    </fieldset> 

<% } %> 

DisplayName 속성을 제거하면 여전히 작동하지 않습니다. 또한 모델을 변경하고 해당 모델을 기반으로 뷰를 다시 작성하면 새로운 변경 사항을 고려하지 않은 것으로 나타났습니다. VS가 모델을 어딘가에 캐싱하는 것과 거의 비슷합니다. 업데이트를 얻는 유일한 방법은 솔루션을 닫거나 다시 연 다음 뷰를 만드는 것입니다.

기본적으로 생성되는 AccountModels.cs 파일의 LogOnModel은 실질적으로 동일하며 속성이 적어 제대로 작동합니다. 내 모델을 정의하는 방식에 뭔가 빠져있을 수 있습니까? 내가 여기서 잘못하고있는 것을 알아낼 수는없는 것 같습니다.

는 또한뿐만 아니라 내가 직접보기를 입력하려고하면 눈치 편집 마크 업 예를 들어,

<%@ Page ... Inherits="System.Web.Mvc.ViewPage<MySite.Models.ViewModel>" %> 

... 

<div class="editor-label"> 
    <%= Html.LabelFor(model => model.PropertyOne) %> 
</div> 
<div class="editor-field"> 
    <%= Html.TextBoxFor(model => model.PropertyOne)%> 
    <%= Html.ValidationMessageFor(model => model.PropertyOne)%> 
</div> 

컴파일러 오류 CS1061: 'MySite.Models.ViewModel' does not contain a definition for 'PropertyOne'가 표시됩니다.

결론 현재 Visual Studio는이 분야에서 정말 버그가 있습니다. 나는 최신판이다 (9.0.30729.1 SP)

답변

1

..... 아니, 기다려, 상처. 그것은 내 머리가 벅차다. 인터페이스에서 속성을 복사하여 붙여 넣어 타이핑을하지 않고 그냥 public으로 설정하는 것을 잊어 버렸다는 것을 알았다.

누군가가 똑같은 문제를 겪고 누군가가 똑같은 문제를 겪고 나에게 좋은 소식을 선사했다면 (내가 여기에 올릴만큼 길어서!) 무슨 일이 일어나고 있는지 알아 내려고합니다.

관련 문제