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

时间:2010-12-11 12:59:23

标签: asp.net-mvc asp.net-mvc-3 razor

为什么我需要使用<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>
}

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

2 个答案:

答案 0 :(得分:20)

这是因为当你在{}的语句中时,只有HTML标记被视为文字,其他一切都是服务器端脚本。因此,您需要使用标准HTML标记,例如<div><span>,或者如果您想使用文字,请使用未输出到响应的特殊<text>标记

答案 1 :(得分:18)

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

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

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