使用MVC HtmlHelper时,有条件地删除<form>标记

时间:2016-09-02 14:15:31

标签: html asp.net-mvc forms

目标是有条不紊地排除开场和关闭由以下MVC代码呈现的<form>标记:

    @using (Html.BeginForm())
    {
        <label>The Value</label>
        <input name="value" />

        ... more form elements ...

        <input type="submit" value="submit"/>
    }

我根据模型中的条件禁用此页面上的表单。我已经禁用了单独的表单输入,但是想要更进一步并完全删除表单以防止在JS失败的情况下提交表单(这是我禁用表单的方式)。

手动将html标签放入并用if语句包围它们是不可能的 - 这在编辑器中呈现出奇怪的效果,显示错误。

1 个答案:

答案 0 :(得分:1)

可以有条件地删除渲染的<form>标记,只需对上面的代码稍作修改,同时还保留原始的HtmlHelper。我们只需要一个三元if语句,当我们想放弃表单时返回null:

    @using (Model.isReadOnly ? null : Html.BeginForm())
    {
        <label>The Value</label>
        <input name="value" />

        ... more form elements ...

        <input type="submit" value="submit"/>
    }