管道字符在Html.BeginForm中导致"意外令牌"错误

Tod*_*vis 1 asp.net-mvc-4

我正在尝试重新创建现有登录表单的HTML设计,以便在MVC4程序中使用.这其中大部分是好的,但是当我试图进入一个管道符(|)两个元素之间,它抛出一个错误"意外的标记".您可以在底部,按钮之后和锚点之前看到它.任何想法为什么这是一个错误?有办法解决吗?(除了删除管道字符?)

    @using (Html.BeginForm("Login", "AccountController", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-login form-wrapper form-narrow" }))
    { 
        @Html.AntiForgeryToken()
        @Html.ValidationSummary(true)

        <h3 class="title-divider"><span>Login</span> <small>Not signed up? @Html.ActionLink("Sign Up Here.", "Register")</small></h3>

        @Html.LabelFor(m => m.UserName)
        @Html.TextBoxFor(m => m.UserName, new { @class = "input-block-level" } )
        @Html.ValidationMessageFor(m => m.UserName)

        @Html.LabelFor(m => m.Password)
        @Html.PasswordFor(m => m.Password, new { @class = "input-block-level" })
        @Html.ValidationMessageFor(m => m.Password)

        @Html.LabelFor(m => m.RememberMe, new { @class = "checkbox" })
        @Html.CheckBoxFor(m => m.RememberMe)

        <button class="btn btn-primary" type="submit" value="Log in" >Sign in</button>
    | <a href="#">Forgotten Password?</a>
    }
Run Code Online (Sandbox Code Playgroud)

For*_*Two 7

将其放在<text>标签内或使用@:操作员

<text>|</text>
Run Code Online (Sandbox Code Playgroud)

要么

@:|
Run Code Online (Sandbox Code Playgroud)

在using语句中,您实际上是在一个剃刀代码块中,因此任何不在 html标记内或以@:运算符开头的内容都将被读作服务器代码.