2010-12-11 6 views
16

Tại sao tôi được yêu cầu sử dụng thẻ <text> để kèm theo chữ cái '|' trong đánh dấu này? Chắc chắn nó nằm ngoài phạm vi của phương thức ActionLink.Vấn đề văn bản bằng chữ trong MVC3 Xem dao cạo

@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> 
} 

Nếu tôi không sử dụng, tôi gặp lỗi CS1525: Invalid expression term '|', nhưng thứ hai '|' được bằng cách không bị cản trở.

Trả lời

20

Đó là vì khi bạn ở trong một tuyên bố với {} chỉ thẻ HTML được coi là chữ, mọi thứ khác là tập lệnh phía máy chủ. Vì vậy, bạn cần phải sử dụng các thẻ HTML chuẩn như <div>, <span>, ... hoặc nếu bạn muốn sử dụng chữ, hãy sử dụng thẻ <text> đặc biệt không được cung cấp cho phản hồi.

+0

Thú vị, nhưng tại sao lại làm việc khác của tôi | char (xem các chỉnh sửa) bên ngoài {} bên trong, nhưng nó vẫn nằm trong một {} bên ngoài cho một vòng lặp. Có phải là bên trong một thẻ HTML thoát nó bằng cách nào đó? – ProfK

+0

@ProfK, tôi không hiểu. Bạn đang nói về cái gì bên trong và bên ngoài? Chỉnh sửa nào? –

+1

@ProfK, xin lỗi, giờ tôi đã thấy các chỉnh sửa của bạn. Ở bên ngoài '{}', ký tự '|' nằm bên trong một thẻ: '', đó là lý do tại sao nó hoạt động trong khi ở bên trong không có thẻ: bạn có '{', một số trình trợ giúp phía máy chủ '@ Html.ActionLink' theo sau trực tiếp bởi '|', không có thẻ và khi không có thẻ, nó được coi là phía máy chủ. –

18

Nếu văn bản của bạn kéo dài nhiều dòng, bạn có thể sử dụng thẻ <text>.

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

khác, nếu bạn chỉ đơn giản muốn đầu ra các ký tự gạch sử dụng chỉ thị @: để xác định văn bản,
nên @:| chí đầu ra |, và thông báo lỗi sẽ biến mất.