2010-12-11 10 views
16

<text> 태그를 사용하여 파이프 리터럴 '|'을 묶어야하는 이유는 무엇입니까? 이 마크 업에서? 물론 그것은 ActionLink 메소드의 범위를 벗어납니다. 나는 그것을 사용하지 않는 경우MVC3의 텍스트 리터럴 문제 면도기 뷰

@foreach (var item in Model.DetailItem.PlannedResources) 
{ 
    <tr> 
     <td> 
      @if (Model.ViewMode == ViewMode.Edit) 
      { 
       @Html.ActionLink("Edit", "Edit", new { id = item.PlannedResourceId }) <text>|</text> 
       @Html.ActionLink("Delete", "Delete", new {id = item.PlannedResourceId})                  
      } 
      @Html.ActionLink("Details", "Details", new { id = item.PlannedResourceId }) 
     </td> 
     <td> 
      | @item.ResourceType.Name 
     </td> 
    </tr> 
} 

, 나는 오류 CS1525: Invalid expression term '|'를 얻을 수 있지만, 두 번째 '|' 방해받지 않고 도착합니다.

답변

20

{}으로 된 문장 안에 HTML 태그 만 리터럴로 간주되기 때문에 다른 모든 것은 서버 측 스크립트입니다. 그러므로 <div>, <span>과 같은 표준 HTML 태그를 사용해야합니다. 리터럴을 사용하려면 응답에 출력되지 않는 <text> 태그를 사용해야합니다.

+0

흥미 롭군요. 그렇다면 내 기타 | char (편집 참조) 내부의 {} 바깥쪽에 있지만 여전히 바깥 쪽 {} 안에 있습니다. HTML 태그 안에 있으면 어떻게 든 그것을 벗어날 수 있습니까? – ProfK

+0

@ProfK, 이해가 안됩니다. 내부와 외부의'{}'에 대해 이야기하고 있습니까? 무엇이 편집합니까? –

+1

@ProfK, 죄송합니다. 이제 수정 사항이 보입니다. 바깥 쪽'{}'에서'|'문자는 태그 안에 있습니다 :'', 내부적으로는 태그가없는 반면,'{', 일부 서버 측 도우미'@ Html.ActionLink' '|', 태그 없음, 태그가없는 경우에는 서버 측으로 간주됩니다. –

18

텍스트가 여러 줄에 걸쳐있는 경우 <text> 태그를 사용할 수 있습니다. 당신은 단순히 출력하려면

<text>your text here...
over to the 2nd line.</text>

다른 방법으로는, 파이프 문자는
그래서 @:|가 출력 | 및 오류 메시지가 사라집니다, 텍스트를 지정 @: 지시어를 사용합니다.