MVC3 Razor视图中的文本文字问题

Pro*_*ofK 16 asp.net-mvc razor asp.net-mvc-3

为什么我需要使用 <text>标记来封装管道文字'|' 在这个标记?当然,它远远超出了ActionLink方法的范围.

@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>
}
Run Code Online (Sandbox Code Playgroud)

如果我不使用它,我得到错误CS1525: Invalid expression term '|',但第二个'|' 无阻碍地得到.

Dar*_*rov 21

这是因为当你在一个语句中{,}只有HTML标签被认为是文字,其他一切都是服务器端脚本.所以,你需要要么使用标准的HTML标签,例如<div>,<span>,...或者,如果你想用文字使用情况的专项<text>未被输出到响应标签.


Dav*_*and 19

如果您的文本跨越多行,则可以使用该<text>标记.

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

或者,如果您只想输出管道字符,请使用@:指令指定文本,
因此@:|将输出|,错误消息将消失.