2010-01-18 3 views
0

강한 형식의보기가있는 경우 예 : Inherits = "System.Web.Mvc.ViewPage>"%> 그리고 모델의 항목 목록을 출력하고 싶습니다. Visual Studio 내에서 "보기 추가"를 사용할 때 아래와 같은 HTML 코드가 생성됩니다. 테이블 열 머리글을 출력 할 때 Magic 문자열 "Version"을 제거 할 수 있습니까?Asp.net MVC 매직 문자열 - 제거

<table> 
    <tr> 
     <th> 
      Version 
     </th> 
    </tr> 
    <% foreach (var item in Model) { %> 
    <tr> 
     <td> 
      <%= Html.Encode(item.Version) %> 
     </td> 
    <tr/> 
    <% } %> 
</table> 
+1

그 문자열을 "마법"으로 만드는 것을 보지 못했지만 나는 백 스페이스를 7 번 치면 제거 할 수 있다고 믿습니다. –

답변

0

나는 리플렉션을 사용해야한다고 생각합니다. 이 질문은 당신을 도울 것 같습니다 : 웹 프로젝트에서 컨트롤러와 뷰가있는 경우 I는하지만, 그냥 (의 .resx) App_GlobalResources (또는 뷰에 App_LocalResources 상대적으로 리소스 파일을 추가

How do you get a C# property name as a string with reflection?

1

대신 무엇을 갖고 싶습니까?

번역 된 리소스 파일을 사용할 수 있습니다 .. 또는 item.Version 변수의 이름이어야한다면 아마도 약간의 반사를 들여다 볼 수 있습니다.

+0

목록에있는 단일 항목에 대해 예를 들어 마술 문자열 문제를 방지하기 위해 강력한 형식의 HTML 도우미를 사용할 수 있기를 바랬습니다. <% = Html.TextBoxFor (model => model.Version) %> – Noel

0

그 팬이 아니라) 그리고 yoru보기에서 리소스를 참조하십시오.

개인적으로 리소스 파일 (.resx)이 포함 된 "리소스"프로젝트를 만듭니다. 각 resx는 public (디자이너 상단의 드롭 다운)으로 설정됩니다. 이 방법으로 웹 프로젝트의 뷰 또는 다른 프로젝트의 컨트롤러/애플리케이션 서비스에서 액세스 할 수 있습니다.

그렇다면 복사 또는 번역을 공유하는 것이 큰 걱정거리가 아니라면보기의 복사본을 "마법의 문자열"로 남겨 두는 것이 좋습니다.