如何在Razor中有条件地渲染表单?

时间:2011-05-01 16:23:54

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

当我使用下面的代码时,我收到一条友好的错误消息(和YSCD一样友好)告诉我不应该使用'@',但是当我不使用它时,我的表单声明呈现为字面Razor代码,而不是预期的HTML元素。我做错了什么?

@if (Model.Step == Trocrates.Web.Models.PasswordResetModel.PasswordResetSteps.StartRequest)
{ 
        @using (Html.BeginForm()) { Html.ValidationSummary(true);
        <fieldset style="border: 0px;">
            <div class="editor-label">
                @Html.LabelFor(model => model.UserName);
            </div>
            <div class="editor-field">
                Html.EditorFor(model => model.UserName) Html.ValidationMessageFor(model => model.UserName)'
                <input type="submit" value="Log In" />
                &nbsp;&nbsp;@Html.ActionLink("Send", "BeginResetPassword", "Account")
            </div>
        </fieldset>
        }
}

对不起读者,原来那个与BeginForm在同一行上不太明显的开括号字形引起了混乱。当我关闭时,事情就会重新发生。

1 个答案:

答案 0 :(得分:3)

您是否尝试删除@声明中的using符号?由于if块已经处于代码模式,@符号在那里没有任何意义。这是对我来说唯一不合适的事情。