2011-08-20 4 views
2

도와주세요! 내가 Asp.net/WebForms에서 익명 형식은 페이지의 마크 업에서 비주얼 스튜디오 2008 를 사용에 이상한 문제가 발생하고, 이것은 "예상 유형"오류 (단지 예)를 생성 :익명 형식의 Asp.net WebForms 오류

<%=new { property = "somevalue" }.ToString() %> 

심지어

내가하는 방법에 넣고 경우
<%var x = new { property = "somevalue" }; 
Response.Write(x.ToString()); %> 

이 잘 작동합니다 :

<%=ShowIt() %> 

을 ... 코드 숨김에서 ...

public string ShowIt() 
{ return new { property = "somevalue" }.ToString(); } 

Web Forms에서 익명 형식/구문을 인식하도록하려면 어떻게해야합니까?
Google을 사용해 보았습니다.

참고 사항 : 위의 코드는 좋은 습관이 아닙니다. 이 프로젝트의 마크 업에서 익명 형식 AT ALL을 사용할 수 없습니다. IE : 인수로도 전달 :

<%=ShowIt(new { prop1 = "a", prop2 = 2 }) %> 

작동하지 않는 것 같습니다. 나를 위해

+0

당신은 자신의 질문에 답했습니다. – Smudge202

+0

고마워요 -하지만 내 간단한 예제가 실제로 이해가되지 않는 동안 - 사실 매개 변수 (MVC의 HTML 도우미 작동 방식) 일종의 익명 형식 개체를 메서드에 전달하려고합니다. 이 시나리오와 그 특정 요구에 대해서는 좋은 대답은 아니지만 감사합니다. – aikeru

답변

0

web.config에서 문제가 발견되었습니다. 분명히 "system.codedom"태그 아래에있는 "컴파일러"태그 아래에 C# 컴파일러에 대한 참조가 누락되었습니다.

 <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <providerOption name="CompilerVersion" value="v3.5"/> 
     <providerOption name="WarnAsError" value="false"/> 
     </compiler> 
3

, 다음

{ property = somevalue } 

당신은 출력에 "속성"의 값을 시도하고 있습니까 :

<%= new { property = "somevalue" }.ToString() %> 

는 익명 형식의 구조를 출력? Smudge202 위의 상태로 당신이 좋은 방법 이름으로 마크 업 자체 문서화를 할 수 있습니다, 당신은 정말 방법 뒤에 코드를 사용한다

<%= new { property = "somevalue" }.property.ToString() %> 

어느 방법 :

그래서 다음 사용하는 경우

.

+0

위 코드는 예제 일뿐입니다. 저는 실제로 익명 타입 객체를 MVC의 HTML 헬퍼가 어떻게 작동하는지와 같은 함수에 전달하고 있습니다. 아마도 WebForms/2008/ASP.net 마크 업과 함께 정상적으로 작동한다면 프로젝트의 web.config 또는 무언가에 문제가있을 수 있습니다. – aikeru