2011-09-28 3 views
3

저는 MVC3에 매우 익숙하며, pluralsight에서 asp.net mvc3 자습서를 거친 후 곧 문제에 봉착했습니다.뷰에서 모델 지시문이 세미콜론으로 런타임 오류를 일으키는 지 Visual Studio에서 알 수없는 이유는 무엇입니까?

@model MvcApplication1.Models.RestaurantReview 
@{ 
    ViewBag.Title = "Home Page 1"; 
} 
... 

을하지만이되지 않습니다 ... 그것을 빌드하고 런타임 오류에 초크 :

도입 '모델을 추가'섹션의 강력한 형식의 예를 시도,이 작품

유일한 차이점은 @model 지정 문 다음에 세미콜론을 사용하여 지시문이 아닌 명령문으로 바꾸는 것입니다.

Visual Studio에서 충돌이 발생한다는 것을 왜 알지 못합니까? 오류가 발생하는 동안 IIS에서 제공하는 오류 메시지는 실제로 오류가있는 코드의 올바른 줄 번호가 아닙니다.

VS는 빨간색으로 밑줄을 긋고 서술문에서 사용할 수 있지만 빌드 성공을 방해하지는 않습니다.

큰 프로젝트에서 디버깅하는 것이 악몽처럼 보일 것 같습니다.

+2

악몽처럼 보이지는 않습니다. 실제로보기마다 한 번만 발생할 수 있으며 결국에는 더 이상하지 않을 것임을 알게 될 것입니다. – Blindy

답변

3

그것은 분명히 버그입니다. 우리는 그것을 알고 있으며 다음 버전의 MVC에서 수정 될 것입니다. 사실 수정은 이미 MVC 4 개발자 미리보기에 있습니다.

+0

버그입니까? 나는 그것이 특징이라고 생각했다. (** 우리의 견해 중 하나에서 오류가 발생했을 때 우리 얼굴에 날아 가지 말라는 것을 의미했다 ** **) – tugberk

2

빌드 이벤트에서보기를 컴파일하면 구문 오류가 있으면보기가 막히게됩니다.

보기를 컴파일하려면 다음을 수행하십시오.

  1. 언로드 바로 바로 VS에서 솔루션 탐색기에서 프로젝트를 클릭하고 클릭하여 프로젝트 프로젝트
  2. 오른쪽 사용할 수없는 프로젝트로 변환 된 프로젝트를 클릭하고 "편집 your_project_name 언로드 .csproj "( 은 VB 프로젝트 인 경우 프로젝트 인 경우 vbproj가됩니다)
  3. 다음 코드를 참조하십시오. 변경 false에서 MvcBuildViews 노드 값을

  4. <!--There some lines of code here and I deleted them to get to the point quickly--> 
    
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> 
    <MvcBuildViews>false</MvcBuildViews> 
    

    이 작업 후 true

  5. 에 저장하고 프로젝트를 다시로드합니다.

그런 다음 솔루션을 빌드하여 컴파일하십시오. 당신의 견해도 정리 될 것입니다.

업데이트는 예를 시도하고 가정으로 숨 막혀.그래서 나는이 주제에 대한 빠른 블로그 게시물을 작성했습니다

승인

enter image description here

UPDATE의 Works on My Machine 인감을 가지고있다. 세부 사항을 참조하십시오

http://www.tugberkugurlu.com/archive/how-to-detect-errors-of-our-asp-net-mvc-views-on-compile-time-blow-up-in-my-face-theory

관련 문제